数字信号课程设计报告 联系客服

发布时间 : 星期二 文章数字信号课程设计报告更新完毕开始阅读51a8b28ff8c75fbfc67db213

具体代码实现:

[x,fs,bits]=wavread('E:\\hbsong.wav'); N=size(x,1);

t=(0:length(x)-1)/fs; f=fs*(0:(N+1)/2-1)/N+1; X=fft(x,N+1);

%加高斯白噪声

z=awgn(x,20); %对信号加信噪比为10的高斯白噪声 N1=size(z,1); %提取采样信号的长度 t=(0:length(z)-1)/fs; %计算样本时刻 f=fs*(0:(N1+1)/2-1)/N1+1; Z=fft(z,N1+1); Wp=2500/fs*2*pi;

Ws=3000/fs*2*pi; %计算对应的数字频率 B=Ws-Wp; n=ceil(1*pi/B); wc=(Wp+Ws)/2;

b=fir1(n-1,wc/pi,'stop',blackman(n));%blackman窗函数滤波 [H,w]=freqz(b,1);

y=fftfilt(b,z); t1=(0:length(y)-1)/fs; Y=fft(y,N1+1);

subplot(2,2,1);

plot(t,z);title('加高斯白噪声后时域图'); subplot(2,2,2);

plot(f,abs(Z(1:(N1+1)/2)));title('滤波前信号频谱图') figure

plot(fs*w/(2*pi),20*log10);title('blackman函数频域响应图'); title('频率响应')

xlabel('频率(Hz)'); ylabel('幅度');

subplot(2,2,3); plot(t1,y)

title('滤波后信号时域图'); xlabel('时间(s)'); ylabel('幅度'); subplot(2,2,4);

plot(f,abs(Y(1:(N1+1)/2))); title('滤波后信号频谱图') xlabel('频率(Hz)'); ylabel('幅度'); sound(y,fs)

二、语音信号的延时和混响

1.设计要求:

(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样;

(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图; 将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较;

(3)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,全通结构的混响器,并画出滤波器的频域响应;

(4)用自己设计的滤波器对采集的语音信号进行滤波;

(5)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化; (6)回放语音信号。

2. 设计步骤:

(1)录入原始声音信号;

(2)计算样本时刻和频谱图的频率,并进行N+1点FFT变换; (3)加入单回声;

(4)设计单回声滤波器幅频响应函数; (5)绘出相应时域与频域图;

(6)利用sound函数进行原始信号的语音播放,加单回声后语言播放,以及滤除之后的语言播放;

3.设计实现:

(1)时域图和频域图(加单回声)

原始信号时域图:

滤波后的时域图:

原始信号频域图:

滤波后频域图:

单回声滤波器幅频响应:

(2)具体代码实现(单回声):

[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; X=fft(x,n+1);

a=0.6;%单回声滤波 R=fs*a;

B=[1,zeros(1,R-2),a]; A=[1,zeros(1,R-1)];

y = filter(B,A,x); Y=fft(y,n+1);

[H,W]=freqz(B,A); %求单回声滤波器幅频响应函数 %绘图部分 figure(2);

plot(fs*W/(2*pi),20*log10(abs(H)));title('频率响应'); xlabel('频率(Hz)'); ylabel('幅度'); figure(1);

subplot(4,1,1);

plot(t,x);title('原信号时域'); xlabel('时间(s)'); ylabel('幅度'); subplot(4,1,2);

plot(f,abs(X(1:(n+1)/2)));title('原信号频域'); xlabel('频率(Hz)'); ylabel('幅度'); figure(1);

subplot(4,1,3);

plot(t,y);title('滤波后时域图'); xlabel('时间(s)'); ylabel('幅度'); figure(1);

subplot(4,1,4);

plot(f,abs(Y(1:(n+1)/2)));title('滤波后频域图'); xlabel('频率(Hz)'); ylabel('幅度'); sound(x,fs,bits); sound(y,fs,bits);

(3)时域图与频域图(多重回声)

原始信号时域图与多重信号时域图:

原始信号时域图与多重信号频域图: