導航:首頁 > 編程語言 > 聯邦濾波matlab程序

聯邦濾波matlab程序

發布時間:2023-03-07 19:53:22

① matlab低通濾波程序,怎麼用

h = freqs(b, a, w) 根據系數向量計算返回濾波器的復頻域響應。

調用這個低通濾波器時,使用下面的函數

sf=filter(a,b,s); %s為需濾波的數據,sf經過你設計的低通濾波器以後的新數據

② MATLAB,FIR低通濾波器程序或者FDATool的參數設定

例題:

設計一個低通數字濾波器,給定抽樣頻率為fs=12000Hz,通帶截止頻率wp=0Hz,阻帶起始頻率ws=5000Hz(假設阻帶衰減不小於-50dB)。

解答:

由於阻帶衰減為50dB,查表,可選海明窗,其阻帶最小衰減為53dB,過渡帶寬度為6.6π/N。

MATLAB程序如下:

wp=0;%頻率歸一化

ws=5000*2/12000;

wdel=ws-wp;%過渡帶寬

wn=0.5*(wp+ws);%近似計算截止頻率

N=ceil(6.6*pi/wdel);%根據過渡帶寬度求濾波器階數

window=hamming(N+1);%海明窗

b=fir1(N,wn,window);%FIR濾波器設計

freqz(b,1,512);%查看濾波器幅頻及相頻特性



參考:

http://..com/question/350250283.html


你的問題沒有說明衰減,我直接在網路上找的答案,使用海明窗的低通濾波器。我運行了下,語句是對的。

③ 急求:自適應聯邦濾波演算法的matlab模擬程序代碼

clear
fs=1000;%采樣頻率1000hz
N=500;%采樣點數
t=(0:1:N-1)/fs;
f=10;%正弦信號頻率10hz
x=sin(2*pi*f*t)+randn(size(t));%被隨機信號干擾的正弦信號

b = fir1(31,0.5); %由 = fir1(31,0.5); 產生32階濾波器系數
n = 0.1*randn(1,500); % 通過以上濾波系統所加入的雜訊
d = filter(b,1,x)+n; % 通過濾波器後的期望信號
delta = 0.005; % 設置自適應濾波器其中一個步長因子為0.005
ha = adaptfilt.lms(32,delta);%求出系統的濾波器系數
[y,e] = filter(ha,x,d);
delta0=0.001; %另一個步長因子為0.001作對比
ha=adaptfilt.lms(32,delta0);
[y0,e0]=filter(ha,x,d);
m=1:500;
figure(1);
plot(m,x,'g');
figure(2);
plot(m,e,'r',m,e0);
legend('delta=0.001','delta=0.005')
% subplot(2,1,1)
% plot(m,e0)
%

以上是基本的LMS演算法

% 濾波型LMS演算法濾波
M = 20; % 運行次數
N = 1000; % 信號的長度
n = 0:N-1;
s = sin(2*pi*n/10); % 初始信號
u = s + 0.36*randn(1,N); % 疊加雜訊後的信號
% 信號疊加雜訊波形圖
figure(1);
plot(n,u);
title('信號疊加雜訊波形圖');
xlabel('n');ylabel('u');

y = zeros(1,N); % 初始化經過自適應濾波器後的信號為零向量
w = zeros(1,N); % 初始化自適應濾波器的權向量為零向量
e = zeros(N); % 初始化誤差e(n)的為零向量
a = zeros(1,N); % 初始化前向濾波器的權向量為零向量
vare = zeros(N); % 初始化誤差的平方e(n)^2的為零向量
estd = zeros(N); % 初始化均方誤差E{e(n)^2}的為零向量
vare1 = ones(1,N); % 初始化誤差的平方e(n)^2的為1向量
estd1 = ones(1,N); % 初始化均方誤差E{e(n)^2}的為1向量
k = 10; % 自適應濾波器的階數

e1 = zeros(1,N); % 初始化前向預測誤差e1為零向量
e2 = zeros(1,N); % 初始化濾波向量e為零向量
y(1:k) = u(1:k);

mu0 = 0.0065; % 初始更新步長因子

% 初始化前向濾波器的權向量
a(1:11) = [ 0.1642 , 0.1341 , 0.0529,-0.0624 , -0.1586 ,-0.1932 , -0.1555 , -0.0599 , 0.0584, 0.1229 , 0.1106];

% 濾波型LMS演算法濾波
for j = (k + 1):M
u = s + 0.36*randn(1,N); % 疊加雜訊後的信號
for n=(k+2):N

mu = mu0/(1 + (n/100)); % 先搜索後收斂步長因子
e(j,n) = s(n) - w((n-1):(n+9)) * u(n:-1:(n-10))'; % 誤差

e1(n) = u(n) + a((n-10):n)*u((n-1):-1:(n-11))'; % 前向預測誤差

e2(n) = e(j,n) + a((n-10):n)*e(j,(n:-1:(n-10)))'; % 濾波

w(n:(n+10)) = w((n-1):(n+9)) + mu*e1(n:-1:(n-10))*e2(n); % 更新自適應濾波器的權向量

y(n) = w((n):(n+10)) * u((n):-1:(n-10))'; % 經過自適應濾波器後的信號

vare(j,n) =e(j,n)^2; % 誤差的平方e(n)^2

estd(j,n) = vare(j,(1:n))*vare(j,(1:n))'/n; % 均方誤差E{e(n)^2}
end
end
vare1 = (vare1*vare)/M; % 統計平均意義下e(n)^2
estd1 = (estd1*estd)/M; % 統計平均意義下學習曲線

% 濾波型LMS自適應濾波輸出
figure(2);
plot(y);
title('mu = 0.0065時濾波型LMS自適應濾波輸出');
xlabel('n');ylabel('y');
% 濾波型LMS自適應濾波器的e(n)^2的曲線
figure(3);
plot(vare1);
title('濾波型LMS自適應濾波器的e(n)^2的曲線 ');
xlabel('n');ylabel('e(n)^2');
% 濾波型LMS自適應濾波器的學習曲線圖
figure(4);
plot(estd1);
title('濾波型LMS自適應濾波器的學習曲線圖 ');
xlabel('n');ylabel('E[e(n)^2]');

希望可以幫到你

④ 關於用MATLAB設計對信號進行頻譜分析和濾波處理的程序

完整的程序
%寫上標題
%設計低通濾波器:
[N,Wc]=buttord()
%估算得到Butterworth低通濾波器的最小階數N和3dB截止頻率Wc
[a,b]=butter(N,Wc); %設計Butterworth低通濾波器
[h,f]=freqz(); %求數字低通濾波器的頻率響應
figure(2); % 打開窗口2
subplot(221); %圖形顯示分割窗口
plot(f,abs(h)); %繪制Butterworth低通濾波器的幅頻響應圖
title(巴氏低通濾波器'');
grid; %繪制帶網格的圖像
sf=filter(a,b,s); %疊加函數S經過低通濾波器以後的新函數
subplot(222);
plot(t,sf); %繪制疊加函數S經過低通濾波器以後的時域圖形
xlabel('時間 (seconds)');
ylabel('時間按幅度');
SF=fft(sf,256); %對疊加函數S經過低通濾波器以後的新函數進行256點的基—2快速傅立葉變換
w= %新信號角頻率
subplot(223);
plot()); %繪制疊加函數S經過低通濾波器以後的頻譜圖
title('低通濾波後的頻譜圖');
%設計高通濾波器
[N,Wc]=buttord()
%估算得到Butterworth高通濾波器的最小階數N和3dB截止頻率Wc
[a,b]=butter(N,Wc,'high'); %設計Butterworth高通濾波器
[h,f]=freqz(); %求數字高通濾波器的頻率響應
figure(3);
subplot(221);
plot()); %繪制Butterworth高通濾波器的幅頻響應圖
title('巴氏高通濾波器');
grid; %繪制帶網格的圖像
sf=filter(); %疊加函數S經過高通濾波器以後的新函數
subplot(222);
plot(t,sf); ;%繪制疊加函數S經過高通濾波器以後的時域圖形
xlabel('Time(seconds)');
ylabel('Time waveform');
w; %新信號角頻率
subplot(223);
plot()); %繪制疊加函數S經過高通濾波器以後的頻譜圖
title('高通濾波後的頻譜圖');
%設計帶通濾波器
[N,Wc]=buttord([)
%估算得到Butterworth帶通濾波器的最小階數N和3dB截止頻率Wc
[a,b]=butter(N,Wc); %設計Butterworth帶通濾波器
[h,f]=freqz(); %求數字帶通濾波器的頻率響應
figure(4);
subplot(221);
plot(f,abs(h)); %繪制Butterworth帶通濾波器的幅頻響應圖
title('butter bandpass filter');
grid; %繪制帶網格的圖像
sf=filter(a,b,s); %疊加函數S經過帶通濾波器以後的新函數
subplot(222);
plot(t,sf); %繪制疊加函數S經過帶通濾波器以後的時域圖形
xlabel('Time(seconds)');
ylabel('Time waveform');
SF=fft(); %對疊加函數S經過帶通濾波器以後的新函數進行256點的基—2快速傅立葉變換
w=( %新信號角頻率
subplot(223);
plot(')); %繪制疊加函數S經過帶通濾波器以後的頻譜圖
title('帶通濾波後的頻譜圖');

閱讀全文

與聯邦濾波matlab程序相關的資料

熱點內容
小米6檢測工具下載 瀏覽:540
桌面創建不了文件夾怎麼回事 瀏覽:894
qq古代頭像傷感圖片 瀏覽:797
wpspdf文檔如何在文件夾預覽 瀏覽:15
大數據與工業的結合包括哪些領域 瀏覽:993
蘋果7鬧鍾鈴聲設置歌曲 瀏覽:168
法庭文件有哪些 瀏覽:211
zip文件怎麼刪除嗎 瀏覽:247
win1016179安裝失敗 瀏覽:457
pp助手的文件系統 瀏覽:218
設計網站橫幅廣告要哪些因素 瀏覽:991
勞務報酬認定在多少號文件 瀏覽:209
本地數據傳輸業務有什麼用途 瀏覽:375
什麼情侶app好用 瀏覽:575
旅遊攻略適合下什麼app 瀏覽:403
nodejsbusboy下載 瀏覽:106
同事不會送文件找不到地方 瀏覽:473
銀聯萬事達applepay 瀏覽:834
試玩怎麼推廣app 瀏覽:588
課設報告中數據結構寫什麼東西 瀏覽:44

友情鏈接