原始信号频域:
延时信号频域图:
混响信号频域图:
(8)具体代码实现(延时与混响):
[x,fs,bits]=wavread('E:\\mcpass.wav'); N=size(x,1);
t=(0:length(x)-1)/fs; f=fs*(0:(N+1)/2-1)/N+1;
xd=[zeros(300,1);x]; %信号延时 td=(0:length(xd)-1)/fs; Xd=fft(xd); Xd1=fftshift(Xd); dFs =fs/length(xd);
xd1=[x;zeros(300,1)];%信号混响 x1=xd1+xd;
Xhun=fft(x1);%混响信号fft变换
Xh2=fftshift(x1);%平移,中心为0频率 dFs = fs/length(x1); %绘图部分 figure(1);
subplot(4,1,1);
plot(t,x);title('原信号时域'); xlabel('时间(s)'); ylabel('幅度'); X=fft(x,N+1); subplot(4,1,2);
plot(f,abs(X(1:(N+1)/2)));title('原信号频域'); xlabel('频率(Hz)'); ylabel('幅度'); subplot(4,1,3);
plot(td,xd);title('延时信号时域图') xlabel('时间(s)'); ylabel('幅度'); subplot(4,1,4);
plot([-fs/2:dFs: fs/2-dFs],abs(Xd)); title('延时信号频域图') xlabel('频率(Hz)'); ylabel('幅度'); figure(2);
subplot(2,1,1);
plot(td,x1);title('混响信号时域图'); xlabel('时间(s)'); ylabel('幅度'); figure(2);
subplot(2,1,2);
plot([-fs/2:dFs: fs/2-dFs],abs(Xh2)); title('混响信号频域图'); xlabel('频率(Hz)'); ylabel('幅度'); sound(x); sound(xd); sound(x1);
三、数字滤波器的设计及实现
1.设计要求:
(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,观察st的时域波形和幅频特性曲线;
(2)要求将st中的三路调幅信号分离,通过观察st的幅频特性曲线,分别确
定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率,要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB; (3)编程调用MATLAB滤波器设计函数分别设计这三个数字滤波器,并绘图显示其幅频特性曲线;
(4)调用滤波函数filter,用所设计的三个滤波器分别对复合信号st进行滤波,分离出st中的三路不同载波频率的调幅信号,并绘图显示滤波后信号的时域波形和频谱,观察分离效果。
2.设计步骤:
(1)产生三路调幅信号;
(2)三路信号相加组成复合信号;
(3)分别设计低通、带通、高通滤波器,对三路信号滤波; (4)绘出相应的时域、频域图; (5)观察分离效果;
3.设计实现:
(1)时域图与频域图(第一路):
第二路:
第三路:
4.具体代码实现:
N=1600; %N为信号st的长度。