基於matlab的數字陷波器設計
陷波器是一種簡單的二階iir濾波器,其幅度響應在某一頻率上為零,可用來消除某個頻率分量,如:濾除訊號中由電源引起的50hz工頻干擾。其系統函式為:
其中:ω0=2πf0/fs---陷波數字頻率(rad);f0---陷波頻率(hz);fs---取樣頻率(hz);
r----常數。
實驗要求:程式設計實現以下功能:
1)設陷波頻率f0=50hz,取樣頻率fs=600hz,r=0.9,畫h(z)的幅頻和相頻特性。
2)畫h(z)的零極點圖,體會陷波原理。
3)利用該陷波器對訊號:x(n)=2*sin(2*pi*50/fs*n)+sin(2*pi*100/fs*n) (n=0~599)進行濾波,畫出x(n)及濾波輸出y(n)。
程式**:
%數字陷波器
clear
clcf0=50;fs=600;r=0.9;
w0=2*pi*f0/fs;
b=[1 -2*cos(w0) 1];
a=[1 -2*r*cos(w0) r*r];
n=1024;
[h,w]=freqz(b,a,n);
subplot(221);plot(w,abs(h));grid on;title('陷波器的幅頻響應');
subplot(222);plot(w,angle(h));grid on;title('陷波器的相頻響應');
subplot(223);zplane(b,a);grid on;title('陷波器的零極點圖');
n=0:n-1;
x=sin(2*pi*50*n/fs)+sin(2*pi*100*n/fs);
x=fft(x,n);
y=filter(b,a,x);
y=fft(y,n);
f=fs/n*(0:n/2-1);
figure;
subplot(221);plot(n,x);grid on;title('原訊號x(n)');
subplot(222);plot(f,abs(x(1:n/2)));grid on;title('x(n)的幅頻譜');
subplot(223);plot(n,y);grid on;title('陷波器濾波後的訊號y(n)');
subplot(224);plot(f,abs(y(1:n/2)));grid on;title('y(n)的幅頻譜');
程式執行結果圖:
matlab基於樸素貝葉斯變換的手寫數字識別
歡迎各位大佬的指點。原理部分參考大佬的即可。原始碼總共由三部分組成,fun1.m fun2.m predeal.m。訓練集在同資料夾下名為training資料夾內,內含 1 2 等等資料夾,各個資料夾內有1.1,1.2等等 為了便於處理,原圖大小均為50 50,命名方式統一為 n.n.png 如下圖...
數字訊號處理 基於MATLAB的線性累加平均演算法
原始訊號為正弦訊號,通過matlab程式設計給正弦訊號加入高斯白雜訊。將含有雜訊的訊號通過線累加平均演算法來去除雜訊。線性累加演算法 clc clear 1 加入高斯白雜訊 fi 1 正弦訊號頻率 fs 100 取樣頻率 t 0 1 fs 10 f 1 sin t 2 sin 2 t 原始訊號 y1...
基於REST架構的Web Service設計
先前我曾經介紹過利用apache axis實現基於soap的web service實現技術和相關 總的來說,soap的web service解決方案雖然較為成熟,且安全性較好,但是使用門檻較高,在大併發情況下會有效能問題,在網際網路上使用不太普及,因此並不太適合web 2.0 服務使用,目前大量的w...