《現代訊號處理》
課程實驗報告
指導老師:支國明、周揚
專業班級:電子資訊1101
學號:0909110814
姓名:周群創
一、 課程設計題目和題目設計要求
1、 訊號發生器
使用者根據測試需要,可任選以下兩種方式之一生成測試訊號:
(1) 直接輸入(或從檔案讀取)測試序列;
(2) 輸入由多個不同頻率正弦訊號疊加組合而成的模擬訊號公式(如式1-1所示)、取樣頻率(hz)、取樣點數,動態生成該訊號的取樣序列,作為測試訊號。
100sin(2πf1t)+100sin(2πf2t)+…+100sin(2πfnt)(1-1)
2、 頻率分析
使用fft對產生的測試訊號進行頻譜分析並展示其幅頻特性及相頻特性,指定需要濾除的頻帶,通過選擇濾波器型別(iir/fir),確定對應的濾波器(低通、高通)技術指標。
3、 濾波器設計
根據以上技術指標(通帶截止頻率、通帶最大衰減、阻帶截止頻率、阻帶最小衰減),設計數字濾波器,生成相應的濾波器係數,並畫出對應的濾波器幅頻特性與相頻特性。
(1) iir df設計:可選擇濾波器基型(巴特沃斯或切比雪夫);
(2) fir df設計:使用視窗法(可選擇視窗型別,並比較分析基於不同視窗、不同階數所設計數字濾波器的特點)。
4、 數字濾波
根據設計的濾波器係數,對測試訊號進行數字濾波,展示濾波後訊號的幅頻特性與相頻特性,分析是否滿足濾波要求(對同一濾波要求,對比分析各類濾波器的差異)。
(1) iir df:要求通過差分方程迭代實現濾波(未知初值置零處理);
(2) fir df:要求通過快速卷積實現濾波(對於長序列,可以選擇使用重疊相加或重疊保留法進行卷積運算)。
5、 選做內容
將一段語音作為測試訊號,通過頻譜展示和語音**,對比分析濾波前後語音頻號的變化,進一步加深對數字訊號處理的理解。
要求:使用matlab(或其它開發工具)程式設計實現上述內容,寫出課程設計報告。
二、 設計思想和系統功能結構及功能說明
首先輸入由多個不同頻率正弦訊號疊加組合而成的模擬訊號公式、取樣頻率(hz)、取樣點數,動態生成該訊號的取樣序列,作為測試訊號,然後使用fft對產生的測試訊號進行頻譜分析並展示其幅頻特性與相頻特性,指定需要濾除的頻帶,接下來使用等波紋法fir低通濾波器進行濾波,最後進行分析,檢查是否滿足濾波要求。
三、 關鍵部分的詳細描述和介紹,流程圖描述關鍵模組和設計思想
1、 訊號發生器
輸入由多個不同頻率正弦訊號疊加組合而成的模擬訊號公式取樣頻率(hz)、取樣點數,動態生成該訊號的取樣序列,作為測試訊號。
**:clc,clear清除命令視窗的內容,清除工作空間的內容
%%%%%%%濾波器引數
fp=60阻帶截止頻率
fs=[50 60通帶截止頻率
ft=1000採集頻率,ft>2max(f1,f2,f3)
as=30阻帶最小衰減
ap=0.5通帶最大衰減
a=[1 0];
dev=[(10^(ap/20)-1)/(10^(ap/20)+1) 10^(-as/20)];
wp=2*pi*fpwp,ws分別為通帶頻率和截止頻率,ap為通帶最大衰減,as阻帶最小衰減。
ws=2*pi*fs;
%%%%%%%輸入訊號%%%%%%%%%
f1=50;f2=150;f3=250輸入訊號的頻率
n=600資料長度n=0.6/0.001 =600個點
t=1/ft;n=0:n-1取樣時間間隔,n是取樣點數
t=n*t時間序列
randn('state',0產生一雜訊訊號
y=100*sin(2*pi*f1*t)+100*sin(2*pi*f2*t)+100*sin(2*pi*f3*t)+0.1*randn(1,n); %輸入的時間訊號,載入波形
效果圖2、 等波紋法fir低通濾波器
**y=fft(y,1024進行快速傅利葉變換,fft(x,n)算n點的dft。(m為x的點數)若m>n,則將原序列截短為n點序列,再計算其n點dft;若m%%%%%fir低通等波紋濾波器%%%%%%%%
[k,fo,ao,w] = firpmord(fs,a,dev,ft);
b = firpm(k,fo,ao,w);
[h,w]=freqz(b,1,1024,ft); %等號左邊輸出,右邊輸入根據引數求出頻率響應
figure(3)
subplot('211');
plot(w*ft*0.5/pi,20*log10(abs(h)));
title('濾波器幅頻特性');ylabel('振幅/db');xlabel('頻率/hz');
subplot('212');
plot(w*ft*0.5/pi,180/pi*unwrap(angle(h)));
title('濾波器相頻特性');ylabel('相位');xlabel('頻率/hz');
z=filter(b,1,y);
m=fft(z,1024求濾波後的訊號
figure(1)
subplot(4,2,3);
plot(abs(m),'r'); %x軸範圍不填就預設。函式的長度
title('濾波後訊號的頻譜');
grid;%畫分割線
subplot(4,2,4);
plot(z,'b');
title('濾波後的訊號波形');
grid;
subplot(4,2,2);
plot(y,'b');
title('濾波前訊號的波形');
grid;
subplot(4,2,1);
plot(abs(y),'r');
title('濾波前訊號的頻譜');
grid;
p=angle(m);
q=angle(y);
subplot(4,1,3);plot(q,'b');title('濾波前相位');
grid;
subplot(4,1,4);plot(p,'b');title('濾波後相位');
grid
效果圖四、 總結
在做的過程中,最開始只做出了訊號發生器,進行了快速傅利葉變換,但是沒有做出濾波器,經過詢問同學,諮詢老師,以及查詢資料之後,成功解決了問題,證明了自己的能力。這次課程設計對我各方面的綜合能力有了很大的提高,對我以後的工作,實踐都有很大的幫助。
五、 參考文獻
【1】 程佩青.數字訊號處理教程,第二版【m】.北京:清華大學出版社,2011
【2】 趙樹傑等.數字訊號處理【m】.西安:西安電子科技大學出版社,1997
【3】 陳懷琛等.matlab及在電子資訊課程中的應用【m】,北京:電子工業出版社,2002
六、 程式源**清單
基於matlab的數字訊號處理課程設計%%
clc,clear清除命令視窗的內容,清除工作空間的內容
濾波器引數
fp=60阻帶截止頻率
fs=[50 60通帶截止頻率
ft=1000採集頻率,ft>2max(f1,f2,f3)
as=30阻帶最小衰減
ap=0.5通帶最大衰減
a=[1 0];
dev=[(10^(ap/20)-1)/(10^(ap/20)+1) 10^(-as/20)];
wp=2*pi*fpwp,ws分別為通帶頻率和截止頻率,ap為通帶最大衰減,as阻帶最小衰減。
ws=2*pi*fs;
輸入訊號
f1=50;f2=150;f3=250輸入訊號的頻率
n=600資料長度n=0.6/0.001 =600個點
t=1/ft;n=0:n-1取樣時間間隔,n是取樣點數
t=n*t時間序列
randn('state',0產生一雜訊訊號
y=100*sin(2*pi*f1*t)+100*sin(2*pi*f2*t)+100*sin(2*pi*f3*t)+0.1*randn(1,n);
輸入的時間訊號,載入波形
y=fft(y,1024進行快速傅利葉變換,fft(x,n)算n點的dft。(m為x的點數)若m>n,則將原序列截短為n點序列,再計算其n點dft;若mfir低通等波紋濾波器
[k,fo,ao,w] = firpmord(fs,a,dev,ft);
b = firpm(k,fo,ao,w);
[h,w]=freqz(b,1,1024,ft); %等號左邊輸出,右邊輸入根據引數求出頻率響應
figure(3)
subplot('211');
plot(w*ft*0.5/pi,20*log10(abs(h)));
title('濾波器幅頻特性');ylabel('振幅/db');xlabel('頻率/hz');
subplot('212');
訊號處理課程設計
課程設計報告 2010 2011年度第1學期 名稱 訊號分析與處理 自 題目 使用matlab工具進行數字訊號處理 院系 控制與計算機學院 班級 測控0803班 學號 1081160305 學生姓名 黃婷婷 指導教師 楊錫運 肖運啟 設計週數 一周 成績 日期 2010年12月30日 訊號分析與處理...
課程設計實驗報告
上海應用技術學院 課程設計 2011 2012學年第二學期 設計題目成績記錄簿 院 系 電腦科學與資訊工程學院 專業計算機應用技術 班級 12104006 學號 1210400631 學生姓名溫源 設計時間 2013.07.1 2012.07.12 指導教師宋智禮 提交日期 上海應用技術學院課程設計...
課程設計實驗報告
實驗報告 課程名稱統計學課程設計 實驗類別 綜合性 設計性 其他 實驗專案統計學課程設計 專業班級 姓名 學號 實驗室號實驗組號 實驗時間批閱時間 指導教師成績 瀋陽工業大學實驗報告 適用經 管 文 法專業 專業班級學號姓名 實驗專案 spss資料處理 附件 1 瀋陽工業大學實驗報告 適用經 管 文...