声音信号下采样与重构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号与系统课程实践报告
1内容与要求
采集一段人说话时的声音,并进一步经过若干次的取样,从而得到对同一段连续信号在不同取样频率下的离散信号,比如最初的取样频率是44kHz,那么经过下取样后可以得到在22kHz、11kHz、5.5kHz、2.75kHz等频率下的取样结果。试针对该信号及其取样信号,分析取样率对信号重构的影响,通过编写重构运算程序计算重构误差。
2 思路与方案
注:原理见信号书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 = 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);
%对信号进行采样
%采样频率为22kHz
deX = resample(X, 22000, 44100);
ts = 1/22000;
N = length(deX)-1;
t = 0:1/fs:N/fs;
Nfft = N;
df = fs/Nfft;
fk = ( -Nfft/2:Nfft/2-1) * df;
figure(2)
subplot(211)
t_range=[0,200,-2,2];
plot(t, deX);
axis(t_range);
deX_f = ts * fftshift( fft( deX, N )); subplot(212)
f_range=[-8000,8000,0,0.6];
plot(fk, deX_f);
axis(f_range); %对信号进行重构
% 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(reX, 44100, 22000);
ts = 1/22000;
N = length(reX)-1;
t = 0:1/fs:N/fs;
Nfft = N;
df = fs/Nfft;
sound(reX, fs);
fk = ( -Nfft/2:Nfft/2-1) * df;
figure(3)
plot(t, reX);title('重构信号');
reX_f = ts * fftshift( fft( reX, N )); figure(4)
f_range=[-4000,4000,0,0.6];
plot(fk, reX_f);
axis(f_range);
%采样前和采样后的振幅相减
reX = reX(1:N-1,:);
de_re = X - reX;
figure(5)
plot(t(:,1:N-1), de_re);title('重构误差');
信号与系统课程实践报告
4 总结与感想
经过此次MATLAB 课程设计我学到了很多知识和学习方法。在信号与系统课上所学的那点知识需要结合实践才有用处。所以为了做好这次的课程设计,我上网搜索了许多与此有关的知识,这个过程中我也学会了好多。在这次设计中,我学到了对信号的采样定理的应用,以及信号的重构,并通过观察MATLAB 所生成的频谱图,进一步了解了有关信号的采样与重构,对信号的采样程度进行比较其误差,了解不同采样程度的重构信号和原信号所产生的差异。通过对不同的采样频率对同一信号进行下采样并进行信号重构,分析了各个采样频率下信号的重构误差,理解了采样信号恢复原始信号全部信息的原理,实现了奈奎斯特采样定律下信号重构方法。
5参考资料
[1]吴大正. 信号与线性系统分析(第4版)[M]. 高等教育出版社, 2004.