【仿真结果】
15
【结果分析】
可以看出,当增大采样间隔T到一定值后,信号频谱将发生混叠,时域波形也发生较大失真。频域混叠后的幅度值为原来不混叠时的两倍,可知是相邻周期间的频谱发生了叠加。经过我们试验,得到当采样间隔约为1/pi时,为临界采样,及临界采样频率为pi。
另外,我们发现Sa(t)函数的频域波形有非常明显的关于稳定值的震荡,可知其为吉伯斯现象。增大取样点数N后,函数在跳变点处仍然有震荡,即吉伯斯现象不消失。
以下为我们画出的采样点数为15000时的频谱图,可以发现仍存在吉伯斯现象:
(2)
【题目分析】
由Nyquist抽样定理,将正弦信号以大于其频率二倍的抽样频率抽样时,信号可以被较好还原,而当抽样频率小于正弦频率二倍抽样时,信号将发生失真。
【仿真程序】
%产生指定频率的正弦声音信号并按固定的抽样频率播放 f0=[2000 2200 2400 2600 7200 7400 7600 7800]; fs=8000;N=2*fs;n=(0:N-1);t=n/fs; for i=1:8
y=sin(2*pi*f0(i)*t);%定义声音信号
XA=abs(fftshift(fft(y,N)))/N;%计算幅度频谱 f=n*fs/N;f=f-max(f)/2; sound(y,fs);
subplot(211);plot(t,y);%画出时域波形 xlabel('t');ylabel('x(t)');grid on;
title(['频率f=',num2str(f0(i)),'Hz时域波形']) xlim([0 0.02]);
subplot(212);plot(f,XA);%画出幅度频谱 xlabel('f');ylabel('X(jw)');grid on;
title(['频率f=',num2str(f0(i)),'Hz频域波形']) pause(1); end
16
【仿真结果】
我们选取2000Hz和7200Hz的两个正弦信号以抽样频率fs=8000Hz抽样后的时域波形和频谱进行对比,仿真后画出的图形如下所示:
17
【结果分析】
如我们所料,7200Hz的正弦信号在以抽样频率fs=8000Hz抽样后,发生了严重的失真,由于其周期性而使得频率变为800Hz。这说明,抽样频率低于正弦信号最大频率的两倍抽样时,信号会发生失真。
这种声音信号实际频率随正弦信号频率与抽样频率关系而变化的现象引起了我们的兴趣,于是我们进行了以下仿真来探索这一现象。
%用来生成一个抽样频率固定,频率随时间变化的正弦声音信号 fs=8000;N=0.5*fs;n=0:N-1;t=n/fs; y=sin(2*pi*0*t);
for f=50:50:8000 %频率从50Hz到8000Hz间隔50Hz变化 y=[y sin(2*pi*f*t)]; end sound(y,fs)
运行以上仿真程序,我们听到实际声音的频率,首先随定义的正弦信号的频率升高而升高,到4000Hz时不可闻,此时时域波形的幅度全为零。之后,实际声音的频率,随定义的正弦信号的频率升高而降低,到接近8000Hz时,音高最低。
(3)
【题目分析】
对于许多具有带通特性的信号,其带宽远小于2fH,一般处理带通信号时常遵循带通信号采样定理,即采样频率fs>2(fH-fL)即可。(其中,fH为信号的最大频率,fL为信号的最大频率)
经讨论,我们决定用matlab生成一个有一定频谱特点的带限声音信号,然后对这个信号进行抽样。通过观察抽样前后的频谱变化,来验证以上分析的正确性。
【仿真程序】
%用来生成一个有一定频谱特点的带限声音信号 fs=44100;N=0.5*fs;n=0:N-1;t=n/fs; y=sin(2*pi*1950*t);
for f=2002:2:2100 %频率从2002Hz到2100Hz变化 y=[y sin(2*pi*f*t)]; end
for f=2150:2:2250 %频率从2150Hz到2250Hz变化 y=[y sin(2*pi*f*t)]; end
wavwrite(y,fs,'Sexy voice');
18
%----------------------------------------------------------- %读取wav文件并画声音信号的频谱 clear
[y,fs]=wavread('Sexy voice.wav'); y=y(:,1);N=length(y);n=0:N-1;f=n*fs/N;
Xabs=abs(fft(y,N))/N;Xabs=Xabs/max(Xabs);%计算幅度频谱 subplot(211);plot(f(1:N/2),Xabs(1:N/2));
xlabel('f/Hz');ylabel('X(jw)');title('原带限声音信号频域波形') grid on;axis([0 3000 0 1.1]);
fsc=646;Nc=length(y)/fs*fsc;B=N/Nc;%定义采样频率 for i=1:Nc
yc(i,:)=y(round(i*B),:); end
Nc=length(yc);nc=0:Nc-1;fc=nc*fsc/Nc;
Xabsc=abs(fft(yc,Nc))/Nc;Xabsc=Xabsc/max(Xabsc);%计算幅度频谱 subplot(212);plot(fc(1:Nc/2),Xabsc(1:Nc/2));
xlabel('f/Hz');ylabel('X(jw)');title('抽样后声音信号频域波形') grid on;axis([0 800 0 1.1]); 【仿真结果】
19