利用matlab的fdatool工具進行濾波設計

2021-10-07 07:37:33 字數 3731 閱讀 5937

目錄

1 設計混合測試訊號

2 頻譜分析

3 利用fdatool設計濾波器

4 匯出濾波器引數

5 濾波

6 博主的閒聊群

濾波器設計是乙個建立滿足指定濾波要求的濾波器引數的過程

。濾波器的實現包括濾波器結構的選擇和濾波器引數的計算。

只有完成了濾波器的設計和實現,才能最終完成資料的濾波。

濾波器設計的目標是實現資料序列的頻率成分變更。嚴格的設計規格需要指定通帶波紋數、阻帶衰減、過渡帶寬度等。更準確的指定可能需要實現最小階數的濾波器、需要實現任意形狀的濾波器形狀或者需要用fir濾波器實現。

指標:取樣率 1000;

長度 500;

頻率成分 100hz  300hz  隨機雜訊

fs = 1000;

t = 0:1/fs:0.5;

n = length(t);

x = sin(2*pi*100*t) + sin(2*pi*300*t);

y = x + 2*randn(size(t));

plot(x);

未加雜訊的混合訊號:

加入隨機雜訊的訊號:

在對未知訊號濾波前要設計合適的濾波器,必須要知道混合訊號的頻率成分才能選擇合適的濾波器和濾波器引數。利用傅利葉變就可以很方便的得到混合訊號的頻率成分。注釋掉的**沒有進行平移對稱前的傅利葉變換後資料。

y = fft(y);

% f = (0:length(y)-1)*fs/length(y);

% figure;

% plot(f,abs(y));

n = length(y);

fshift = (-n/2:n/2-1)*(fs/n);

yshift = fftshift(y);

figure;

plot(fshift,abs(yshift));

頻譜圖:

matlab 輸入 fdatool 命令開啟濾波器設計工具

在此介面選擇合適濾波器型別和填入合適資料,可以實時看到濾波器的相應。比如前面的混合訊號有100hz和300hz的頻率成分,現在我需要保留100hz的頻率分量,去掉300hz的頻率分量。選擇低通濾波器。

本次設計的濾波器引數:

設計濾波器時,不能光考慮濾波器效果,還要考慮處理器的處理能力。階數越高的濾波器濾波效果越好,資料也更加平滑,但是同時也會增加處理器的計算量,增加處理時間,實時效果差。設計時應在濾波效果和濾波器的計算量之間做乙個平衡。

在濾波器設計頁面執行file->generate matlab code->filter design function,輸入函式名字儲存。

mypass是第4步儲存的濾波器引數檔案的名字,儲存注意將檔案儲存到當前的工程資料夾下。

hd = mypass;

yfilter = filter(hd,y);

figure;

plot(yfilter);

濾波效果:

全部**:

clc

clear

close all

fs = 1000;

t = 0:1/fs:0.5;

n = length(t);

x = sin(2*pi*100*t) + sin(2*pi*300*t);

y = x + 0.2*randn(size(t));

plot(x);

figure;

plot(y);

y = fft(y);

% f = (0:length(y)-1)*fs/length(y);

% figure;

% plot(f,abs(y));

n = length(y);

fshift = (-n/2:n/2-1)*(fs/n);

yshift = fftshift(y);

figure;

plot(fshift,abs(yshift));

hd = mypass;

yfilter = filter(hd,y);

figure;

plot(yfilter);

mybass.m(fadtool設計生成)

利用MATLAB繪製相軌跡

不直接用時間變數而用狀態變數表示運動的方法稱為相空間方法,也稱為狀態空間方法。在自動控制理論中,把具有直角座標x和x 的平面叫做相平面。相平面是二維的狀態空間,二階系統的某一狀態對應於相平面上的一點,狀態隨時間轉移的情況對應於相平面上點的移動。相平面上的點隨時間變化描繪出來的曲線叫做相軌跡。相軌跡作...

利用Matlab解決規劃問題

整數規劃 非線性規劃 二次規劃 將線性規劃問題的一般形式轉化為標準形式 1.若為maxf x 則化為 maxf x 2.將不等式約束化為等式約束 1 若gi x bi,轉為gi x xk bi 2 若gi x bi,轉為gi x xk bi 3.將任意變數轉為非負變數 即xi 0 4.將負的限定係數...

利用MATLAB編寫高斯積分

function m intgauss n n代表所求節點的個數 syms x for i 1 n for j 1 n y i,j int log x x i 1 x n j 0,1 積分的權函式不同則log x 會改變 endend y y表示權函式與正交函式與w x 的積分值所構成的方陣 for...