拿到课程设计任务的时候,不知道从哪儿入手,选定题目后,上网查阅了相关资源,去图书馆搜集资料,确定了设计的基本方案,步骤,开始用软件进行实现,实现过程中出现了很多问题,上网查阅资料,在专业的论坛里面去看,下载MATLAB的视频,慢慢的开始有了进一步的理解。在以前的实验中没有接触过GUI界面的问题,根本不知道从哪入手,在查阅了资料,看视频,有了一定的了解,但是由于初次接触,出现问题的时候还是很难解决,经过和同学讨论,终于解决了这些问题。
经过此次课程设计,使我对数字信号处理的理论知识有了更深了的了解,更近一步的理解了用MATLAB语言对信号进行采样,滤波等处理。初次接触了MATLAB提供的用户界面的设计问题,对其中的一些基本问题有了了解,为以后的实践打下了一定的基础,相信在以后的实践过程中会有更好的提升。
另外,此次课程设计让我更加明白平时所学的知识如果不加以实践的话等于纸上谈兵。课程设计主要是我们理论知识的延伸,它的目的主要是要在设计中发现问题,并且自己要能找到解决问题的方案,形成一种独立的意识。我们还能从设计中检验我们所学的理论知识到底有多少,巩固我们已经学会的,不断学习我们所遗漏的新知识,把这门课学的扎实。
6 主要参考文献
1.刘泉,数字信号处理原理与实现(第二版),电子工业出版社,2009; 2.张雄伟,DSP集成开发与应用实例,第1版,电子工业出版社,2002; 3. 张洪涛等,数字信号处理,第一版,华中科技大学出版社,2007 4. 彭启琮等,DSP技术的发展与应用,第二版,高等教育出版社,2007 5. 杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,2007
26
附录:guide 界面下的仿真总程序
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\音频信号.wav');%读取原始音频信号 y=y(:,1);%只取单信道
sound(y,fs,bits);%播放原始信号 Y=fft(y);%对原始信号取傅里叶变换
subplot(2,2,1:2);plot(y);title('原始信号时域波形'); subplot(2,2,3);plot(abs(Y));title('原始信号幅频'); subplot(2,2,4);plot(angle(Y));title('原始信号相频');
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\
音
频
信
号.wav',[50000 150000]);%只取原信号的一部分,即时间区间[50000 150000] y=y(:,1);
Y=fft(y,6001);%抽取6001点
subplot(2,2,1:2);plot(y);title('采样信号时域波形'); subplot(2,2,3);plot(abs(Y));title('采样信号幅频'); subplot(2,2,4);plot(angle(Y));title('采样信号相频');
27
sound(y,fs,bits);%回放采样信号
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); y=y(:,1);
z=[zeros(3000,1);y];%延迟3000 Z=fft(z,6001);
subplot(2,2,1:2);plot(z);title('延时后时域波形'); subplot(2,2,3);plot(abs(Z));title('延时后幅频'); subplot(2,2,4);plot(angle(Z));title('延时后相频'); sound(y,fs,bits);%回放延迟信号
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); y=y(:,1);
z=[zeros(3000,1);y]; y=[y;zeros(3000,1)];%补3000
y1=y+z;%将原始信号与延迟信号相加,产生混响信号 Y1=fft(y1,6001);
音
频
信
音
频
信
28
subplot(2,2,1:2);plot(y1);title('混响的时域波形'); subplot(2,2,3);plot(abs(Y1));title('混响的幅频'); subplot(2,2,4);plot(angle(Y1));title('混响的相频'); sound(y,fs,bits);%回放混响信号
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); y=y(:,1);
z=[zeros(3000,1);y]; y=[y;zeros(3000,1)]; a=0.5;
R=5000;%滤波器阶数设置,其值越高,回声越明显 Bz1=[1,zeros(1,R-1),a];%单回声滤波器系统函数分子 Az1=(1);%单回声滤波器系统函数分母
y2=filter(Bz1,Az1,y);%单回声滤波器系统函数 Y2=fft(y2,6001);
[h,w]=freqz(Bz1,Az1);%求设计的滤波器频谱 subplot(3,2,1);plot(abs(h)); title('单回声滤波器幅频响应'); subplot(3,2,2); plot(angle(h)); title('单回声滤波器相频响应');
subplot(3,2,3:4);plot(y2);title('单回声滤波器时域图 '); subplot(3,2,5);plot(abs(Y2));title('单回声滤波器幅频 ');
音
频
信
29
subplot(3,2,6);plot(angle(Y2));title('单回声滤波器相频 '); sound(y2,fs,bits);
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [y,fs,bits]=wavread('C:\\Users\\Administrator\\Desktop\\号.wav',[50000 150000]); y=y(:,1);
z=[zeros(3000,1);y]; y=[y;zeros(3000,1)]; a=0.5; N=5;
R=9000;%滤波器阶数设置,其值越高,回声越明显
Bz1=[1,zeros(1,N*R-1),-a^N];%多重回声滤波器系统函数分子 Az1=[1,zeros(1,R-1),-a];%多重回声滤波器系统函数分母 y2=filter(Bz1,Az1,y); Y2=fft(y2,6001); [h,w]=freqz(Bz1,Az1); subplot(3,2,1);plot(abs(h)); title('多重回声滤波器幅频响应'); subplot(3,2,2); plot(angle(h)); title('多重回声滤波器相频响应');
subplot(3,2,3:4);plot(y2);title('多重回声滤波器时域图 '); subplot(3,2,5);plot(abs(Y2));title('多重回声滤波器幅频 '); subplot(3,2,6);plot(angle(Y2));title('多重回声滤波器相频 '); sound(y2,fs,bits);
音
频
信
30
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于MATLAB的声音的延迟与混响(6)在线全文阅读。
相关推荐: