<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在Matlab中實現不同窗低通濾波器的設計?

FPGA開源工作室 ? 來源:FPGA開源工作室 ? 2024-02-27 14:11 ? 次閱讀

1 漢明窗低通濾波器

Matlab中使用漢明窗設計低通濾波器可以通過fir1函數實現。漢明窗通常用于設計濾波器,可以提供更突出的頻率特性。

下面是一個示例代碼,演示如何在Matlab中使用漢明窗設計低通濾波器:

% 定義濾波器參數
fs = 1000; % 采樣頻率
cutOffFreq = 100; % 截止頻率
filterOrder = 50; % 濾波器階數

% 計算歸一化的截止頻率
nyquistFreq = fs/2;
normalizedCutoffFreq = cutOffFreq/nyquistFreq;

% 設計漢明窗濾波器
b = fir1(filterOrder, normalizedCutoffFreq, 'low', hamming(filterOrder+1));

% 繪制頻率響應
freqz(b, 1, 1024, fs);

在上述示例中,我們首先定義了濾波器的采樣頻率、截止頻率和階數。然后,使用fir1函數通過指定漢明窗來設計低通濾波器,并繪制了濾波器的頻率響應。

這段代碼生成了一個漢明窗低通濾波器,其階數為50,截止頻率為100Hz,采樣頻率為1000Hz??梢愿鶕枰{整這些參數來滿足特定的濾波需求。

482671e6-d523-11ee-a297-92fbcf53809c.png

2 漢寧窗帶通濾波器:

在Matlab中使用漢寧窗設計帶通濾波器可以通過fir1函數結合漢寧窗來實現。漢寧窗是一種常用的窗函數,可以用于提高濾波器的頻率響應特性。

以下是一個示例代碼,演示如何在Matlab中使用漢寧窗設計帶通濾波器:

% 定義濾波器參數
fs = 1000; % 采樣頻率
f1 = 50; % 通帶下限頻率
f2 = 200; % 通帶上限頻率
filterOrder = 50; % 濾波器階數

% 計算歸一化的通帶頻率
nyquistFreq = fs/2;
normalizedCutoffFreq = [f1 f2] / nyquistFreq;

% 設計漢寧窗帶通濾波器
b = fir1(filterOrder, normalizedCutoffFreq, 'bandpass', hann(filterOrder+1));

% 繪制頻率響應
freqz(b, 1, 1024, fs);

在上述示例中,我們首先定義了濾波器的采樣頻率、通帶頻率范圍和階數。然后,使用fir1函數通過指定漢寧窗來設計帶通濾波器,并繪制了濾波器的頻率響應。

這段代碼生成了一個漢寧窗帶通濾波器,其階數為50,通帶頻率范圍為50Hz到200Hz,采樣頻率為1000Hz??梢愿鶕枰{整這些參數來滿足特定的濾波需求。

482ba31e-d523-11ee-a297-92fbcf53809c.png

3 布萊克曼窗高通濾波器:

在Matlab中使用布萊克曼(Blackman)窗設計高通濾波器可以通過fir1函數結合布萊克曼窗來實現。

以下是一個示例代碼,演示如何在Matlab中使用布萊克曼窗設計高通濾波器:

% 定義濾波器參數
fs = 1000; % 采樣頻率
cutOffFreq = 100; % 截止頻率
filterOrder = 50; % 濾波器階數

% 計算歸一化的截止頻率
nyquistFreq = fs/2;
normalizedCutoffFreq = cutOffFreq/nyquistFreq;

% 設計布萊克曼窗高通濾波器
b = fir1(filterOrder, normalizedCutoffFreq, 'high', blackman(filterOrder+1));

% 繪制頻率響應
freqz(b, 1, 1024, fs);

在上面的示例中,我們首先定義了濾波器的采樣頻率、截止頻率和階數。然后,使用fir1函數通過指定布萊克曼窗來設計高通濾波器,并繪制了濾波器的頻率響應。

這段代碼生成了一個布萊克曼窗高通濾波器,其階數為50,截止頻率為100Hz,采樣頻率為1000Hz??梢愿鶕枰{整這些參數來滿足特定的濾波需求。

4836b56a-d523-11ee-a297-92fbcf53809c.png

4 矩形窗的帶阻濾波器:

在Matlab中使用矩形窗設計帶阻濾波器可以通過fir1函數結合矩形窗來實現。帶阻濾波器是一種可以通過矩形窗設計的濾波器類型,用于去除特定頻率范圍內的信號。

以下是一個示例代碼,演示如何在Matlab中使用矩形窗設計帶阻濾波器:

% 定義濾波器參數
fs = 1000; % 采樣頻率
f1 = 50; % 帶阻頻率下限
f2 = 200; % 帶阻頻率上限
filterOrder = 100; % 濾波器階數

% 計算歸一化的帶阻頻率范圍
nyquistFreq = fs/2;
normalizedStopbandFreq = [f1 f2] / nyquistFreq;

% 設計矩形窗帶阻濾波器
b = fir1(filterOrder, normalizedStopbandFreq, 'stop', rectwin(filterOrder+1));

% 繪制頻率響應
freqz(b, 1, 1024, fs);

在上述示例中,我們首先定義了濾波器的采樣頻率、帶阻頻率范圍和階數。然后,使用fir1函數通過指定矩形窗來設計帶阻濾波器,并繪制了濾波器的頻率響應。

這段代碼生成了一個矩形窗帶阻濾波器,其階數為100,帶阻頻率范圍為50Hz到200Hz,采樣頻率為1000Hz??梢愿鶕枰{整這些參數來滿足特定的濾波需求。

483a9c8e-d523-11ee-a297-92fbcf53809c.png

5 四種窗設計濾波器對比

下面是一個示例代碼,展示如何使用Matlab實現漢明窗濾波器、漢寧窗濾波器、布萊克曼窗濾波器和矩形窗濾波器,然后對它們進行對比:

% 生成輸入信號
fs = 1000; % 采樣頻率
t = 0:1/fs:1-1/fs; % 時間向量
f1 = 50; % 信號頻率
f2 = 150; % 噪聲頻率
x = sin(2*pi*f1*t) + sin(2*pi*f2*t); % 輸入信號

% 設計濾波器
filterOrder = 50; % 濾波器階數
cutOffFreq = 100; % 截止頻率

h_hamming = fir1(filterOrder, cutOffFreq/fs, 'low', hamming(filterOrder+1));
h_hann = fir1(filterOrder, cutOffFreq/fs, 'low', hann(filterOrder+1));
h_blackman = fir1(filterOrder, cutOffFreq/fs, 'low', blackman(filterOrder+1));
h_rect = fir1(filterOrder, cutOffFreq/fs, 'low', rectwin(filterOrder+1));

% 應用濾波器
y_hamming = filter(h_hamming, 1, x);
y_hann = filter(h_hann, 1, x);
y_blackman = filter(h_blackman, 1, x);
y_rect = filter(h_rect, 1, x);

% 繪制頻率響應
freqz(h_hamming, 1, 1024, fs, 'red', 'hamming');
hold on;
freqz(h_hann, 1, 1024, fs, 'blue', 'hanning');
freqz(h_blackman, 1, 1024, fs, 'green', 'blackman');
freqz(h_rect, 1, 1024, fs, 'magenta', 'rectwin');
legend('Hamming', 'Hanning', 'Blackman', 'Rectwin');

% 繪制原始信號和濾波后的信號
figure;
subplot(2,1,1);
plot(t, x);
title('原始信號');
subplot(2,1,2);
plot(t, y_hamming, 'r', t, y_hann, 'b', t, y_blackman, 'g', t, y_rect, 'm');
legend('Hamming', 'Hanning', 'Blackman', 'Rectwin');
title('濾波后的信號');

上述代碼中,首先生成了一個包含信號和噪聲的輸入信號。然后使用fir1函數結合漢明窗、漢寧窗、布萊克曼窗和矩形窗設計了4個低通濾波器。接著,將這4個濾波器應用于輸入信號,并繪制了它們的頻率響應。最后,繪制了原始信號和濾波后的信號作對比。

你可以根據需要調整濾波器的參數和頻率范圍,來滿足你具體的濾波需求。

48415146-d523-11ee-a297-92fbcf53809c.png



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • matlab
    +關注

    關注

    176

    文章

    2927

    瀏覽量

    228623
  • 低通濾波器
    +關注

    關注

    13

    文章

    451

    瀏覽量

    46961
  • 頻率響應
    +關注

    關注

    1

    文章

    89

    瀏覽量

    18236
  • 帶阻濾波器
    +關注

    關注

    0

    文章

    22

    瀏覽量

    9969

原文標題:matlab實現不同窗濾波器示例

文章出處:【微信號:leezym0317,微信公眾號:FPGA開源工作室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    低通濾波器如何設計?

    kHz 比音頻信號帶寬20~20kHz 大得多 為了從 PWM 開關信號恢復出音頻信號 通常采用低通濾波器 LPF 低通濾波器頻率特性如圖 1所示圖 2 與圖 3 為 PWM 濾波
    發表于 11-07 14:46

    低通濾波器的FPGA設計及仿真

    主要任務:1.熟悉低通濾波器的原理及應用2.熟悉FPGA的硬件描述3.FPGA如何實現小數分頻4.用MATLAB低通濾波器的驗證預期成果
    發表于 04-04 22:16

    FPGA怎樣調用IP核實現FIR低通濾波器設計?

    剛接觸FPGA,想用EP4CE6F17C8這個型號的altera芯片實現低通濾波器設計,我看能直接調用IP實現,但是網上的資料都是調用MATLAB生成
    發表于 08-04 19:25

    低通濾波器是否可以在MCU實現

    你好, 我在我的應用中使用STM8S208MB MCU,需要在模擬輸入上設計500 Hz的低通濾波器。有沒有人使用MCU設計和實現這種LPF。我需要第一或第二順序的過濾器。是否可以在MCU
    發表于 01-18 12:58

    如何利用MATLAB設計用于諧波檢測的數字低通濾波器?

    波電流,使流入電網的電流全是有功分量,因此無功和諧波電流的實時檢測就成為實時補償的關鍵。而諧波及無功電流的檢測實質就是低通濾波器的設計。那么我們該如何利用MATLAB設計用于諧波檢測的數字
    發表于 08-06 08:32

    低通濾波器設計

    低通濾波器設計內容有:低通濾波器的基本電路和方程,低通勃脫華濾波器,二階低通勃脫華斯濾波器,低通契比雪夫濾波器等內容。
    發表于 12-01 12:39 ?75次下載
    <b class='flag-5'>低通濾波器</b>設計

    有源濾波器中數字低通濾波器的設計及其DSP實現

    有源濾波器中數字低通濾波器的設計及其DSP實現摘要:介紹了基于瞬時無功功率理論的ip iq 諧波檢測方法及對低通濾波器的要求,分析討論了數字低通濾波
    發表于 05-13 17:19 ?90次下載

    基于MATLAB設計巴特沃斯低通濾波器

    基于MATLAB設計巴特沃斯低通濾波器摘 要: 首先分析了巴特沃斯低通濾波器的特性。然后用MATLAB的信號處理工具箱提供的函數設計了巴特沃斯低通濾
    發表于 05-14 13:31 ?134次下載

    基于MATLAB及FPGA的FIR低通濾波器的設計

    充分利用有限沖擊響應數字濾波器(Finite Impulse Response digital filter ,FIR)系數的對稱特性,借助于MATLAB語言和現場可編程門陣列(FPGA)實現了一種高效的
    發表于 08-05 14:23 ?82次下載
    基于<b class='flag-5'>MATLAB</b>及FPGA的FIR<b class='flag-5'>低通濾波器</b>的設計

    數字低通濾波器的設計

    本文主要介紹了數字低通濾波器的設計,數字濾波器有無限沖激響應(IIR)系統和有限沖激響應(FIR)系統兩種。利用MATLAB設計IIR濾波器,設計過程簡單、直接,大大縮減了設計開發的時
    發表于 01-14 15:16 ?1.8w次閱讀
    數字<b class='flag-5'>低通濾波器</b>的設計

    基于MATLAB的理想低通濾波器的設計

    低通濾波器在信號處理中的作用等同于其它領域如金融領域中移動平均數(moving average)所起的作用;低通濾波器有很多種,其中,最通用的就是巴特沃斯濾波器和切比雪夫濾波器。
    發表于 01-26 13:34 ?3.5w次閱讀
    基于<b class='flag-5'>MATLAB</b>的理想<b class='flag-5'>低通濾波器</b>的設計

    低通濾波器的設計與實現

    低通濾波器的設計是已知ow(dB3-截止頻率 )、LPH0(直流增益 )、Q(在dB3-截止頻率時的電壓放大倍數與通帶放大倍數數值之比)三個參數來設計電路,可選的電路形式為壓控電壓源低通濾波器和無限增益多路反饋低通濾波器。下面分
    發表于 04-22 09:23 ?71次下載
    <b class='flag-5'>低通濾波器</b>的設計與<b class='flag-5'>實現</b>

    Matlab低通濾波器設定與實踐

    Matlab數字濾波器設計實踐—FIR 1低通濾波器設定 在理想情況下,低通濾波器使信號中低于指定截止頻率 ωc 的所有頻率分量保持不變,并拒絕高于 ωc 的所有分量。由于
    的頭像 發表于 08-16 11:10 ?1.4w次閱讀
    <b class='flag-5'>Matlab</b><b class='flag-5'>低通濾波器</b>設定與實踐

    高通濾波器低通濾波器的關系

    高通濾波器低通濾波器是互補的,它們可以組合使用,從而實現更復雜的濾波功能。例如,可以將高通濾波器低通
    發表于 02-17 17:47 ?3623次閱讀

    低通濾波器傳遞函數 低通濾波器原理

    原理 低通濾波器的原理基于頻率的截斷。它通過將高頻信號成分削弱或濾除,從而實現對低頻信號的傳遞。具體來說,低通濾波器使得輸入信號中高于截止頻率的成分被抑制或消除,并保留低于截止頻率的成分。在實際應用中,
    的頭像 發表于 01-30 10:23 ?1669次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>