⑴ matlab低通濾波程序,怎麼用
h = freqs(b, a, w) 根據系數向量計算返回濾波器的復頻域響應。
調用這個低通濾波器時,使用下面的函數
sf=filter(a,b,s); %s為需濾波的數據,sf經過你設計的低通濾波器以後的新數據
⑵ matlab中怎麼讓信號通過濾波器
1、首先打開Matlab,滑鼠點擊圖上的圖標。
⑶ 急!Matlab裡面模擬濾波器函數怎麼使用啊謝謝!
你得到系數a,b後,你信號也知道吧,假設是x,然後你就用y=filter(b,a,x);
我當時學時也很困惑怎麼用,後來我做的嘗試,我給你一個例子看看吧,是我學習時自己寫的
設計一個高通濾波器,並檢驗它的性能
采樣率為10kHZ
阻帶邊緣為1.5Khz,衰減為40bB
通帶邊緣為2kHz,波紋為3Db
>>Fs=1e4;
>>fs=1.5e3;
>>fp=2e3;
>>As=40;
>>Rp=3;
>>wp=2*fp/Fs;
>>ws=2*fs/Fs;
>>[N,wn]=cheb2ord(wp,ws,Rp,As);
>>[b,a]=cheby2(N,As,wn,'high');
>>[db,mag,pha,grd,w]=freqz_m(b,a);
>> subplot(2,2,1);plot(w/pi,mag);
>> axis([0,1,0,1]);
>> setX([0 0.3 0.4 1]);
>>setY([0.01 0.7279 1])
>> title('Magnitude Response');
>> subplot(2,2,2);plot(w/pi,db);
>> axis([0 1 -70 0])
>> setX([0 0.3 0.4 1])
>> setY([-40 -2.7589])
>> title('Magnitude Response in dB');
然後給你一個信號x=cos(0.2*pi*n);
>>n=0:200;
>>x=cos(0.6*pi*n);
>>y=filter(b,a,x);
>>subplot(2,2,3);plot(n,x);
>>subplot(2,2,4);plot(n,y);
>>x1=fft(x,201);
>>x11=abs(x1);
>>subplot(2,2,1);stem(n,x11);
>>y1=fft(y,201);
>>y11=abs(y1);
>>subplot(2,2,2);stem(n,y11);
>>setX([0 60 140 201])
>>title('FFT of y');
>>subplot(2,2,1);stem(n,x11);
>>setX([0 60 140 201])
>>title('FFT of x');
>>g=x11-y11;
>>subplot(2,2,3);stem(n,g);
你運行一下,就可以看到結果,剛好把此信號濾掉
給你一個設計思路,你改變截止頻率和阻帶衰減就可以了
>> %假設截止頻率為W,我隨便定義一下
>> %比如wp=0.3*pi;ws=0.4*pi
>> wp=0.3*pi;ws=0.4*pi;
>> %阻帶衰減為50分貝
>> %通帶波紋為0.2分貝
>> As=50;Rp=0.2;
>> %那麼可以用兩個函數得到系數a,b
>> [N,wn]=buttord(wp/pi,ws/pi,Rp,As);
>> [b,a]=butter(N,wn);
>> %該濾波器就是從截止頻率到無窮遠都不響應
希採納
⑷ 如何使用Matlab數字濾波器
直接用fda tool工具,圖文並茂,很簡單,第一步聚先按要求生成濾波器,第二步驟把生成的濾波器系數數導出,然後再fpga里就可以用了。
⑸ matlab中用fdatool設計的濾波器如何使用
我們知道設計一個fir濾波器,首先要知道它的沖擊函數,或者說它的系數,如何知道它的序數呢,那就要根據要求設計啦。matab中為我們提供了很多有用的窗函數,可以直接調用;不過從最優化的角度來說remez函數是最好的。其優點是,設計指標相同時,使濾波器階數最低;或階數相同時,使通帶最平坦,阻帶最小衰減最大;通帶和阻帶均為等波形形式。具體用法可以參考matalb中的幫助文件。同樣matlab裡面的toolbox中也有一個工具filterdesign是直接可以用來設計濾波器的,你只要直接輸入設計要求既可以得出序數。
設計好了濾波器,我們下一步就是如何用vhdl實現它。由於我們用matalb得到的系數是浮點數,處理起來不方便。這就要求我們將其定點化,如何定點化呢,就是將它化為整數,乘以一個倍數即可。但是為了後面處理方便,一般是乘以2的n次方。定點化後就根據濾波器輸入與輸出的關系式進行編程,其實就是一個相乘累加的關系。最後結果我們要再縮小。還有一個問題就是結果用什麼形式的數來表示,我覺得用補碼表示比較好一點,因為很多AD或DA都是補碼的,計算機內也是這樣的。
⑹ matlab怎麼調用fdatool的濾波器
在fdatool中設計好高通濾波器後,選擇菜單中的file->export...可以把濾波器的系統函數的系數導出來,如果設計的是fir濾波器,變數名默認為num,就相當於你的fir濾波器的hn。假設你的要濾波的輸入序列為x的話,濾波結果
y
=
filter(num,
1,
x);
如果設計的是iir濾波器,輸出的變數有兩個:sos和g,這是以直接ii型結構給出的系數,需要通過調用函數
[b,
a]=sos2tf(sos,g),轉化為多項式形式的系數,然後可用於濾波。假設你的要濾波的輸入序列為x的話,濾波結果
y
=
filter(b,
a,
x);
p.s.
使用plot(y)可以畫出濾波後的波形。
⑺ matlab如何進行低通濾波
樓主你好
濾波要先設計濾波器,b,a代表濾波器設計的參數。一般可以使用巴特沃斯濾波器。
例如低通濾波器的設計代碼為:
data = importdata('t2.txt');
Time = data(:,1);
SA = data(:,2);
dtt=diff(Time);
dt=sum(dtt)/length(dtt);
Fs=round(1/dt);%采樣頻率
Wp = 5/(Fs/2); %通帶截止頻率,這個自定大致定義
Ws = 10/(Fs/2);%阻帶截止頻率,這個自定大致定義
Rp = 2; %通帶內的衰減不超過Rp,這個自定大致定義
Rs = 40;%阻帶內的衰減不小於Rs,這個自定大致定義
[n,Wn] = buttord(Wp,Ws,Rp,Rs);%巴特沃斯數字濾波器最小階數選擇函數
[b,a] = butter(n,Wn);%巴特沃斯數字濾波器
[h,w]=freqz(b,a,512,Fs); %計算濾波器的頻率響應
plot(w,abs(h))%,'LineWidth',1繪制濾波器的幅頻響應圖
%**************************************************************************
%對輸入的信號進行濾波
RollAf=filtfilt(b,a,RollA);%filtfilt這個函數是0相位濾波,沒有偏移。filter有偏移。
**************************************************************************
%% 濾波結果繪圖
figure
subplot(2,2,1)
H=plot(Time,RollA,Time,RollAf,'r--');%,'linewidth',3
set(H(2),'linewidth',2)
其中;Wp,Ws是一元向量時,則設計的是低通或高通濾波器,若Wp,Ws是二元向量,則設計帶通或帶阻濾波器。
可以使用fft函數。
希望對你有幫助,
⑻ matlab裡面的濾波工具怎麼用啊
給你個高斯濾波器的例子吧,照著這個寫,那些濾波器都一個樣:
I=imread('lenna.bmp');
figure,imshow(I);title('原始圖像');
[f1,f2]=freqspace(size(I),'meshgrid');
D=100/size(I,2);
Hd=ones(size(I));
r=f1.^2+f2.^2;
for i=1:size(I,1)
for j=1:size(I,2)
t=r(i,j)/(D*D);
Hd(i,j)=exp(-t);
end
end
Y=fft2(double(I));
Y=fftshift(Y);
Ya=Y.*Hd;
Ya=ifftshift(Ya);
Ia=ifft2(Ya);figure(2)
imshow(uint8(Ia));title('高斯濾波後');
⑼ matlab低通濾波程序,怎麼用
h = freqs(b, a, w) 根據系數向量計算返回濾波器的復頻域響應。
調用這個低通濾波器時,使用下面的函數
sf=filter(a,b,s); %s為需濾波的數據,sf經過你設計的低通濾波器以後的新數據
⑽ MATLAB數值濾波處理方法有哪些
MATLAB數值濾波處理方法有:
首先關於fspecial函數的定義,fspecial函數用於建立預定義的濾波運算元。
其語法格式為:
h = fspecial(type)
h = fspecial(type,para)
其中type指定運算元的類型,para指定相應的參數;
函數type的類型有:
1、'average'averaging filter為均值濾波,參數為hsize代表模板尺寸,默認值為[3,3]。
函數格式:H = fspecial('average',hsize)
2、 'disk'circular averaging filter為圓形區域均值濾波,參數為radius代表區域半徑,默認值為5。
函數格式:H = fspecial('disk',radius)
3、'gaussian'Gaussian lowpass filter為高斯低通濾波,有兩個參數,hsize表示模板尺寸,默認值為[3 3],sigma為濾波器的標准值,單位為像素,默認值為0.5。
函數格式:H = fspecial('gaussian',hsize,sigma)
4、'laplacian' filter approximating the 2-D Laplacian operatorlaplacian filter為拉普拉斯運算元,參數alpha用於控制運算元形狀,取值范圍為[0,1],默認值為0.2.
函數格式:H = fspecial('laplacian',alpha)
5、'log'Laplacian of Gaussian filter為拉普拉斯高斯運算元,有兩個參數,hsize表示模板尺寸,默認值為[3 3],sigma為濾波器的標准差,單位為像素,默認值為0.5。
函數格式:H = fspecial('log',hsize,sigma)
6、'motion'motion filter運動模糊運算元,有兩個參數,表示攝像物體逆時針方向以theta角度運動了len個像素,len的默認值為9,theta的默認值為0。
函數格式:H = fspecial('motion',len,theta)
7、'prewitt'Prewitt horizontal edge-emphasizing filter用於邊緣增強,大小為[3 3],無參數。
函數格式:H = fspecial('prewitt')
8、'sobel'Sobel horizontal edge-emphasizing filter用於邊緣提取,無參數
函數格式:H = fspecial('sobel')the filter H: H'.9、'unsharp'unsharp contrast enhancement filter為對比度增強濾波器。參數alpha用於控制濾波器的形狀,范圍為[0,1],默認值為0.2.函數格式:H = fspecial('unsharp',alpha)