1、注:原理见信号书P184-185页首先,将采样后的信号进行快速傅里叶变换到频域,根据时域采样定理,使用低通滤波器对信号频谱进行滤波,获得原始信号的所有信息,然后根据下采样频率恢复原来的声音信号。将恢复的声音信号与原始信号分别在空域与频域进行相减,然后与原始信号的空域与频域曲线相比较,分析重构信号与原始信号的误差,即信号重构误差。3 成果展示原始信号取样信号(22k,11k,5、5k,2、75k)重构信号(22k,11k,5、5k,2、75k)22k时重构误差代码:X,fs = audioread(D:文本文档01-江山此夜、wav);ts = 1/fs;N = length(X)-1;t =
2、0:1/fs:N/fs;Nfft = N;df = fs/Nfft;fk = ( -Nfft/2:Nfft/2-1) * df;subplot(211)t_range=0,350,-2,2;plot(t, X);axis(t_range);Original_f = ts * fftshift( fft( X, N );subplot(212)f_range=-4000,4000,0,0、6;plot(fk, Original_f);axis(f_range);%对信号进行采样%采样频率为22kHzdeX = resample(X, 22000, 44100);ts = 1/22000;N =
3、length(deX)-1;figure(2)t_range=0,200,-2,2;plot(t, deX);deX_f = ts * fftshift( fft( deX, N );f_range=-8000,8000,0,0、6;plot(fk, deX_f); %对信号进行重构% BP=fir1(300,00,6000/(fs/2);% reX = filter(BP, 1, deOrginal_f);% reX_sound = ifft(reX);BP=fir1(300,100,6000/(fs/2);reX = filter(BP, 1, deX);reX = resample(re
4、X, 44100, 22000);N = length(reX)-1;sound(reX, fs);figure(3)plot(t, reX);title(重构信号reX_f = ts * fftshift( fft( reX, N );figure(4)plot(fk, reX_f);%采样前与采样后的振幅相减reX = reX(1:N-1,:de_re = X - reX;figure(5)plot(t(:,1:N-1), de_re);重构误差4 总结与感想经过此次 MATLAB 课程设计我学到了很多知识与学习方法。在信号与系统课上所学的那点知识需要结合实践才有用处。所以为了做好这次的课程 设计,我上网搜索了许多与此有关的知识,这个过程中我也学会了好多。 在这次设计中,我学到了对信号的采样定理的应用,以及信号的重构, 并通过观察 MATLAB 所生成的频谱图, 进一步了解了有关信号的采样与重构,对信号的采样程度进行比较其误差,了解不同采样程度的重构信号 与原信号所产生的差异。通过对不同的采样频率对同一信号进行下采样并进行信号重构,分析了各个采样频率下信号的重构误差,理解了采样信号恢复原始信号全部信息的原理,实现了奈奎斯特采样定律下信号重构方法。5参考资料1吴大正、 信号与线性系统分析(第4版)M、 高等教育出版社, 2004、