0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

常見(jiàn)的濾波算法及其在單片機(jī)中的應(yīng)用介紹(三)

冬至子 ? 來(lái)源:HITwh汽院智能車(chē)團(tuán)隊(duì) ? 作者:汽小智 ? 2023-11-21 14:52 ? 次閱讀

01

低通濾波

原理

低通濾波(Low Pass Filter)用于從一個(gè)信號(hào)中去除高于某個(gè)頻率的成分。它的基本原理是,信號(hào)中高于某個(gè)頻率的成分在信號(hào)傳輸或接收過(guò)程中會(huì)發(fā)生衰減,而低于該頻率的成分則不受影響。因此,通過(guò)將信號(hào)通過(guò)一個(gè)低通濾波器,可以去除高頻噪聲,保留信號(hào)中的低頻成分。

低通濾波器可以采用不同的設(shè)計(jì)方法,包括基于時(shí)域、頻域、以及模擬電路等不同的技術(shù)。其中,最常見(jiàn)的是基于時(shí)域的差分方程實(shí)現(xiàn)的數(shù)字濾波器,通??梢苑譃镕IR濾波器和IIR濾波器兩種。

FIR濾波器(Finite Impulse Response Filter)是一種基于差分方程的數(shù)字濾波器,其特點(diǎn)是在時(shí)域上具有有限沖激響應(yīng)。FIR濾波器的實(shí)現(xiàn)較為簡(jiǎn)單,可以通過(guò)離散時(shí)間的加法和乘法運(yùn)算實(shí)現(xiàn),具有線性相位和穩(wěn)定的特點(diǎn)。由于FIR濾波器的階數(shù)與其響應(yīng)的精度有直接關(guān)系,因此,設(shè)計(jì)高階FIR濾波器會(huì)面臨計(jì)算量和存儲(chǔ)空間的限制。

IIR濾波器(Infinite Impulse Response Filter)是另一種基于差分方程的數(shù)字濾波器,其特點(diǎn)是在時(shí)域上具有無(wú)限沖激響應(yīng)。IIR濾波器相較于FIR濾波器具有更高的階數(shù)和更好的頻率選擇性能,但其存在非線性相位和穩(wěn)定性的問(wèn)題。由于IIR濾波器的差分方程中包含反饋回路,因此對(duì)于不當(dāng)?shù)?a target="_blank">參數(shù)設(shè)置或?qū)崿F(xiàn),可能會(huì)導(dǎo)致濾波器不穩(wěn)定或發(fā)生振蕩。

低通濾波器在信號(hào)處理領(lǐng)域中應(yīng)用廣泛,例如音頻處理、圖像處理、通信系統(tǒng)中的調(diào)制解調(diào)和解擾等等。它可以通過(guò)選擇不同的濾波器類型、濾波器參數(shù)和濾波器級(jí)數(shù)等方式來(lái)達(dá)到不同的濾波效果和性能。

智能車(chē)競(jìng)賽中的低通濾波常指加權(quán)遞推平均濾波。

代碼

C++
#define ALPHA 0.2

double lowPassFilter(double currentVal, double prevFilteredVal)
{
double filteredVal;
filteredVal = ALPHA * currentVal + (1 - ALPHA) * prevFilteredVal;
return filteredVal;
}

其中,ALPHA表示濾波器的參數(shù),需要根據(jù)具體應(yīng)用進(jìn)行調(diào)整。該函數(shù)的返回值為當(dāng)前經(jīng)過(guò)低通濾波后的數(shù)值。

使用示例

C++
#include
#include
#include

#define ALPHA 0.2

double lowPassFilter(double currentVal, double prevFilteredVal);

int main()
{
double data[10];
double filteredData[10];
double prevFilteredVal = 0;
int i;

srand(time(NULL));

for (i = 0; i < 10; i++) {
    data[i] = rand() % 100;
    filteredData[i] = lowPassFilter(data[i], prevFilteredVal);
    prevFilteredVal = filteredData[i];
    printf("Original data: %.2f, Filtered data: %.2fn", data[i], filteredData[i]);
}

return 0;

}

輸出結(jié)果如下所示:

Plain Text
Original data: 67.00, Filtered data: 13.40
Original data: 23.00, Filtered data: 16.72
Original data: 68.00, Filtered data: 24.18
Original data: 98.00, Filtered data: 38.54
Original data: 36.00, Filtered data: 41.03
Original data: 48.00, Filtered data: 45.43
Original data: 41.00, Filtered data: 43.34
Original data: 89.00, Filtered data: 53.67
Original data: 26.00, Filtered data: 47.94
Original data: 77.00, Filtered data: 55.55

可以看出,經(jīng)過(guò)低通濾波后,數(shù)據(jù)的波動(dòng)幅度有所減小。

02

高通濾波

原理

高通濾波(High Pass Filter)可以濾除信號(hào)中的低頻部分,保留高頻部分。高通濾波器的應(yīng)用非常廣泛,例如在音頻處理中可以用來(lái)去除低頻噪聲、在圖像處理中可以用來(lái)增強(qiáng)圖像的邊緣等。

高通濾波算法的基本思想是:將信號(hào)分解成高頻和低頻兩部分,去掉低頻部分,只保留高頻部分。高通濾波的實(shí)現(xiàn)可以通過(guò)頻域方法和時(shí)域方法兩種方式實(shí)現(xiàn)。

頻域方法是將信號(hào)轉(zhuǎn)換到頻域進(jìn)行處理,常用的有傅里葉變換和小波變換等。通過(guò)濾波器在頻域中濾除低頻成分,然后再將信號(hào)轉(zhuǎn)換回時(shí)域。

時(shí)域方法則是通過(guò)差分等方式,直接在時(shí)域中濾除低頻部分。其中最簡(jiǎn)單的高通濾波器是一階高通濾波器,可以使用下面的公式表示:

Plaintext
y[n] = a * y[n-1] + a * (x[n] - x[n-1])

其中x[n]是輸入信號(hào),y[n]是輸出信號(hào),a是濾波器的系數(shù)。該濾波器的作用是去除輸入信號(hào)中的低頻分量,只保留高頻部分。

高通濾波器也可以使用其他階數(shù)的濾波器進(jìn)行實(shí)現(xiàn),如二階高通濾波器、Butterworth高通濾波器等。不同階數(shù)的濾波器可以達(dá)到不同的濾波效果。

需要注意的是,高通濾波器會(huì)使得信號(hào)的振幅發(fā)生變化,因此在應(yīng)用高通濾波器時(shí)需要謹(jǐn)慎選擇濾波器的參數(shù)和階數(shù),以免對(duì)信號(hào)造成不必要的影響。

代碼

C++
#define FILTER_ALPHA 0.5 // 濾波系數(shù)

float highpass_filter(float input, float prev_output)
{
float output = FILTER_ALPHA * (prev_output + input - prev_input);
prev_input = input;
return output;
}

在這個(gè)函數(shù)中,prev_input 和 prev_output 是上一次輸入和輸出的值,F(xiàn)ILTER_ALPHA 是濾波系數(shù),控制著濾波器對(duì)當(dāng)前值和先前值的權(quán)重。

使用示例

C++

#include

int main()

{

float input[] = {2.0, 3.0, 4.0, 5.0, 4.0, 3.0, 2.0, 1.0}; // 輸入信號(hào)

float prev_output = 0.0; // 上一個(gè)輸出值

int len = sizeof(input) / sizeof(float); // 輸入信號(hào)長(zhǎng)度



printf("原始信號(hào):");

for (int i = 0; i

C++
#include

int main()
{
float input[] = {2.0, 3.0, 4.0, 5.0, 4.0, 3.0, 2.0, 1.0}; // 輸入信號(hào)
float prev_output = 0.0; // 上一個(gè)輸出值
int len = sizeof(input) / sizeof(float); // 輸入信號(hào)長(zhǎng)度

printf("原始信號(hào):");
for (int i = 0; i < len; i++) {
    printf("%.2f ", input[i]);
}

printf("n高通濾波后:");
for (int i = 0; i < len; i++) {
    prev_output = highpass_filter(input[i], prev_output);
    printf("%.2f ", prev_output);
}

return 0;

}

在這個(gè)示例中,我們定義了一個(gè)包含 8 個(gè)值的輸入信號(hào),然后通過(guò)高通濾波函數(shù) highpass_filter 處理這個(gè)信號(hào),最終輸出濾波后的結(jié)果。在濾波的過(guò)程中,我們保存了上一次的輸出值,將其作為本次輸入的“前一個(gè)值”傳遞給濾波函數(shù)。

03

帶通濾波

原理

帶通濾波是一種可以濾除某一頻率范圍內(nèi)信號(hào)的濾波器。它可以保留一定頻率范圍內(nèi)的信號(hào),而抑制其他頻率范圍內(nèi)的信號(hào)。一般來(lái)說(shuō),帶通濾波可以通過(guò)將高通濾波器和低通濾波器串聯(lián)而實(shí)現(xiàn)。

具體來(lái)說(shuō),帶通濾波器可以使用以下的傳遞函數(shù)來(lái)表示:

Plaintext
H(s) = (s/w_0) / ((s/w_0)^2 + (s/Q*w_0) + 1)

其中,s 是頻率域中的復(fù)變量,w_0 是中心頻率,Q 是質(zhì)量因子,用來(lái)描述帶通濾波器的帶寬。質(zhì)量因子越大,帶寬越窄,信號(hào)在帶內(nèi)的幅值越大。

在時(shí)域中,帶通濾波器可以通過(guò)以下的差分方程來(lái)實(shí)現(xiàn):

Plaintext
y[n] = 2*cos(w_0)y[n-1] - y[n-2] + x[n] - 2cos(w_0)*cos(w_c)*x[n-1] + cos(w_c)*cos(w_c)*y[n-1]

其中,x[n] 和 y[n] 分別表示輸入和輸出信號(hào),w_c 是帶通濾波器的截止頻率,通過(guò) w_c 和 w_0 可以計(jì)算出帶通濾波器的上下截止頻率。

使用帶通濾波器可以在信號(hào)處理中削弱或抑制不需要的頻率,從而濾除干擾信號(hào)或?yàn)V除噪聲信號(hào),保留需要的信號(hào)。

代碼

C++
#include
#include
#include

#define PI 3.1415926

/* 生成帶通濾波器 */
void bandPassFilter(double f1, double f2, double fs, int N, double *b, double *a) {
int i, j;
double w1 = 2 * PI * f1 / fs;
double w2 = 2 * PI * f2 / fs;
double bw = w2 - w1;
double M = N / 2.0;
double H[M];
double w[M];

/* 計(jì)算帶通濾波器的理想幅頻特性 */
for (i = 0; i < M; i++) {
    if (i == M / 2) {
        H[i] = bw / PI;
    } else {
        H[i] = sin(bw * (i - M / 2.0)) / (PI * (i - M / 2.0));
    }
    w[i] = 0.54 - 0.46 * cos(2 * PI * i / N);  /* 漢寧窗函數(shù) */
    H[i] *= w[i];
}

/* 求出帶通濾波器的差分方程系數(shù) */
for (i = 0; i < N; i++) {
    b[i] = 0;
    a[i] = 0;
}
b[0] = H[0];
a[0] = 1;
for (i = 1; i < M; i++) {
    b[i] = H[i];
    a[i] = 2 * cos(w1 * i);
}
for (i = N - 1, j = 1; i >= M; i--, j++) {
    b[i] = H[j];
    a[i] = 2 * cos(w2 * j);
}

}

/* 帶通濾波函數(shù) */
void filter(double *x, double *y, int N, double *b, double *a) {
int i, j;
double sum1, sum2;

for (i = 0; i < N; i++) {
    sum1 = sum2 = 0;
    for (j = 0; j <= i; j++) {
        sum1 += b[j] * x[i - j];
    }
    for (j = 1; j <= i; j++) {
        sum2 += a[j] * y[i - j];
    }
    y[i] = sum1 - sum2;
}

}

使用示例

C++
#include
#include
#include "bandPassFilter.h"

#define N 100 /* 采樣點(diǎn)數(shù) /
#define Fs 1000 /
采樣頻率 */

int main() {
double x[N], y[N];
double b[101], a[101]; /* b和a數(shù)組長(zhǎng)度為N+1 */

/* 生成測(cè)試信號(hào),包含10Hz和100Hz的正弦波 */
for (int i = 0; i < N; i++) {
    x[i] = sin(2 * PI * 10 * i / Fs) + sin(2 * PI * 100 * i / Fs);
}

/* 生成帶通濾波器 */
double f1 = 20;  /* 通帶下界頻率 */
double f2 = 80;  /* 通帶上界頻率 */
bandPassFilter(f1, f2, Fs, N+1, b, a);

/* 對(duì)測(cè)試信號(hào)進(jìn)行帶通濾波 */
filter(x, y, N, b, a);

/* 輸出濾波后的信號(hào) */
for (int i = 0; i < N; i++) {
    printf("%f ", y[i]);
}

return 0;

}

在這個(gè)示例中,首先生成一個(gè)包含10Hz和100Hz正弦波的測(cè)試信號(hào)。然后,使用bandPassFilter函數(shù)生成一個(gè)通帶在20Hz到80Hz之間的帶通濾波器。最后,使用filter函數(shù)對(duì)測(cè)試信號(hào)進(jìn)行帶通濾波,輸出濾波后的信號(hào)。

04

自適應(yīng)濾波

原理

自適應(yīng)濾波是一種根據(jù)輸入信號(hào)自動(dòng)調(diào)整濾波器參數(shù)的濾波方法。該方法通過(guò)分析信號(hào)的特性,自動(dòng)調(diào)整濾波器參數(shù)以達(dá)到最優(yōu)的濾波效果。

常見(jiàn)的自適應(yīng)濾波方法包括基于卡爾曼濾波、基于最小均方差(LMS)算法、基于最小二乘(RLS)算法等。

其中,LMS算法是一種簡(jiǎn)單而有效的自適應(yīng)濾波算法,它根據(jù)當(dāng)前誤差的大小自適應(yīng)地更新濾波器的系數(shù),從而達(dá)到最小化誤差的目的。LMS算法的實(shí)現(xiàn)過(guò)程如下:

a. 初始化濾波器的系數(shù),通常為0。

b. 將輸入信號(hào)x[n]送入濾波器,并得到輸出信號(hào)y[n]。

c. 計(jì)算當(dāng)前的誤差e[n] = d[n] - y[n],其中d[n]為期望輸出。

d. 根據(jù)LMS算法的公式更新濾波器系數(shù),即:w[i] = w[i] + mu * e[n] * x[n-i],其中mu為步長(zhǎng)因子。

e. 重復(fù)2~4步直到收斂。

自適應(yīng)濾波適用于信號(hào)在時(shí)間和頻率上都隨時(shí)間變化的情況,例如音頻信號(hào)中的噪聲、抖動(dòng)等干擾。它能夠自動(dòng)地調(diào)整濾波器的參數(shù)以適應(yīng)輸入信號(hào)的變化,從而獲得更好的濾波效果。

代碼

下面是一個(gè)基于LMS算法的自適應(yīng)濾波器的C語(yǔ)言實(shí)現(xiàn)示例,包括濾波器初始化、濾波器更新、濾波器輸出三個(gè)部分。

C++
#include
#include

#define N 10 /* 濾波器長(zhǎng)度 /
#define LAMBDA 0.1 /
步長(zhǎng) /
#define DELTA 0.001 /
初始誤差 /
#define M 10 /
信號(hào)長(zhǎng)度 */

/* 自適應(yīng)濾波器初始化 */
void initFilter(double *w) {
int i;
for (i = 0; i < N; i++) {
w[i] = 0;
}
}

/* 自適應(yīng)濾波器更新 */
void updateFilter(double *w, double *x, double d) {
int i, j;
double y, e;
double u[N]; /
輸入向量 */

/* 初始化輸入向量 */
for (i = 0; i   N; i++) {
    u[i] = 0;
    for (j = 0; j   N; j++) {
        if (i  >= j) {
            u[i] += x[i - j] * w[j];
        }
    }
}

/* 計(jì)算輸出、誤差和權(quán)值更新 */
for (i = 0; i   M; i++) {
    y = 0;
    for (j = 0; j   N; j++) {
        y += x[i - j] * w[j];
    }
    e = d[i] - y;
    for (j = 0; j   N; j++) {
        w[j] += LAMBDA * e * u[j];
    }
}

}

/* 自適應(yīng)濾波器輸出 */
void filter(double *w, double *x, double *y) {
int i, j;
for (i = 0; i < M; i++) {
y[i] = 0;
for (j = 0; j < N; j++) {
y[i] += x[i - j] * w[j];
}
}
}

int main() {
int i;
double w[N]; /* 濾波器權(quán)值 /
double x[M]; /
輸入信號(hào) /
double d[M]; /
期望信號(hào) /
double y[M]; /
輸出信號(hào) */

/* 初始化輸入信號(hào)和期望信號(hào) */
for (i = 0; i < M; i++) {
    x[i] = sin(i);
    d[i] = sin(i + 1);
}

/* 自適應(yīng)濾波器初始化 */
initFilter(w);

/* 自適應(yīng)濾波器更新 */
updateFilter(w, x, d);

/* 自適應(yīng)濾波器輸出 */
filter(w, x, y);
/* 輸出結(jié)果 */
for (i = 0; i < M; i++) {
    printf("x[%d] = %f, d[%d] = %f, y[%d] = %fn", i, x[i], i, d[i], i, y[i]);
}

return 0;

}

以上代碼實(shí)現(xiàn)了基于LMS算法的自適應(yīng)濾波器,并進(jìn)行了一個(gè)簡(jiǎn)單的測(cè)試。代碼中首先定義了濾波器的長(zhǎng)度N、步長(zhǎng)LAMBDA、初始誤差DELTA和信號(hào)長(zhǎng)度M等參數(shù)。然后定義了三個(gè)主要的函數(shù):初始化濾波器權(quán)值的函數(shù)initFilter、更新濾波器權(quán)值的函數(shù)updateFilter和計(jì)算濾波器輸出的函數(shù)filter。

在main函數(shù)中,先初始化輸入信號(hào)x和期望信號(hào)d,然后調(diào)用initFilter函數(shù)初始化濾波器權(quán)值。接著,調(diào)用updateFilter函數(shù)更新濾波器權(quán)值。最后,調(diào)用filter函數(shù)計(jì)算濾波器的輸出y。程序預(yù)測(cè)輸出結(jié)果為一個(gè)長(zhǎng)度為M的數(shù)組y,表示濾波器對(duì)輸入信號(hào)x的濾波結(jié)果。

由于輸入信號(hào)x和期望信號(hào)d是根據(jù)sin函數(shù)生成的,因此預(yù)測(cè)輸出結(jié)果也將是一個(gè)sin函數(shù)的變化曲線。具體的輸出結(jié)果將受到LAMBDA、DELTA、N和M等參數(shù)的影響。如果LAMBDA較小,則濾波器收斂速度較慢,但精度較高;如果LAMBDA較大,則濾波器收斂速度較快,但精度較低。DELTA越小,濾波器收斂速度越快。N越大,濾波器的濾波效果越好,但計(jì)算量也會(huì)增加。M越大,濾波器的濾波效果也會(huì)越好,但計(jì)算量同樣也會(huì)增加。

總的來(lái)說(shuō),濾波算法有很多種,每種算法都有自己的特點(diǎn)和適用范圍。選擇合適的濾波算法需要根據(jù)具體應(yīng)用場(chǎng)景和數(shù)據(jù)特征進(jìn)行綜合考慮。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 調(diào)制解調(diào)

    關(guān)注

    0

    文章

    75

    瀏覽量

    21597
  • 濾波器
    +關(guān)注

    關(guān)注

    160

    文章

    7704

    瀏覽量

    177487
  • 信號(hào)處理
    +關(guān)注

    關(guān)注

    48

    文章

    992

    瀏覽量

    103154
  • fir濾波器
    +關(guān)注

    關(guān)注

    1

    文章

    94

    瀏覽量

    19013
  • 低通濾波
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    16019
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何用單片機(jī)實(shí)現(xiàn)數(shù)字濾波?6種數(shù)字濾波算法解析

    單片機(jī)主要作用是控制外圍的器件,并實(shí)現(xiàn)一定的通信和數(shù)據(jù)處理。但在某些特定場(chǎng)合,不可避免地要用到數(shù)學(xué)運(yùn)算,盡管單片機(jī)并不擅長(zhǎng)實(shí)現(xiàn)算法和進(jìn)行復(fù)雜的運(yùn)算。下面主要是介紹如何用
    的頭像 發(fā)表于 02-28 09:41 ?8830次閱讀
    如何用<b class='flag-5'>單片機(jī)</b>實(shí)現(xiàn)數(shù)字<b class='flag-5'>濾波</b>?6種數(shù)字<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>解析

    常見(jiàn)濾波算法及其單片機(jī)的應(yīng)用介紹(一)

    限幅消抖濾波法是一種簡(jiǎn)單有效的數(shù)字濾波算法,常用于對(duì)采集到的離散信號(hào)進(jìn)行去抖動(dòng)處理。它可以去除信號(hào)的瞬時(shí)噪聲和突發(fā)干擾,同時(shí)保留信號(hào)的主要特征。
    的頭像 發(fā)表于 11-21 14:47 ?1709次閱讀

    常見(jiàn)濾波算法及其單片機(jī)的應(yīng)用介紹(二)

    中值濾波是一種非線性濾波算法,它將信號(hào)的每個(gè)采樣點(diǎn)替換成該采樣點(diǎn)鄰域內(nèi)的中值。它的主要思想是通過(guò)找到鄰域內(nèi)的中值來(lái)消除信號(hào)的噪聲,同時(shí)盡
    的頭像 發(fā)表于 11-21 14:50 ?1383次閱讀

    單片機(jī)數(shù)據(jù)采集——數(shù)字濾波算法

    單片機(jī)主要作用是控制外圍的器件,并實(shí)現(xiàn)一定的通信和數(shù)據(jù)處理。但在某些特定場(chǎng)合,不可避免地要用到數(shù)學(xué)運(yùn)算,盡管單片機(jī)并不擅長(zhǎng)實(shí)現(xiàn)算法和進(jìn)行復(fù)雜的運(yùn)算。下面主要是介紹如何用
    發(fā)表于 02-20 15:14

    單片機(jī)數(shù)字濾波算法

    運(yùn)算,盡管單片機(jī)并不擅長(zhǎng)實(shí)現(xiàn)算法和進(jìn)行復(fù)雜的運(yùn)算。下面主要是介紹如何用單片機(jī)實(shí)現(xiàn)數(shù)字濾波
    發(fā)表于 10-30 17:44

    如何用單片機(jī)實(shí)現(xiàn)數(shù)字濾波算法

    單片機(jī)主要作用是控制外圍的器件,并實(shí)現(xiàn)一定的通信和數(shù)據(jù)處理。但在某些特定場(chǎng)合,不可避免地要用到數(shù)學(xué)運(yùn)算,盡管單片機(jī)并不擅長(zhǎng)實(shí)現(xiàn)算法和進(jìn)行復(fù)雜的運(yùn)算。下面主要是介紹如何用
    發(fā)表于 01-07 06:30

    單片機(jī)常用PID濾波算法資料匯總

    單片機(jī)常用PID濾波算法資料匯總
    發(fā)表于 05-21 11:45 ?26次下載

    使用51單片機(jī)實(shí)現(xiàn)MPU6050的卡爾曼濾波算法代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)實(shí)現(xiàn)MPU6050的卡爾曼濾波算法代碼免費(fèi)下載 。
    發(fā)表于 08-20 17:31 ?59次下載
    使用51<b class='flag-5'>單片機(jī)</b>實(shí)現(xiàn)MPU6050的卡爾曼<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>代碼免費(fèi)下載

    單片機(jī)晶振電路的作用及常見(jiàn)參數(shù)的介紹

    每個(gè)單片機(jī)系統(tǒng)里都有晶振,全程是叫晶體震蕩器,單片機(jī)系統(tǒng)里晶振的作用非常大。本文就來(lái)給大家簡(jiǎn)單的介紹下晶振的工作過(guò)程,以及其主要的參數(shù)
    的頭像 發(fā)表于 12-24 12:35 ?3276次閱讀

    單片機(jī)入門(mén)--常見(jiàn)單片機(jī)PIC\STM32

    單片機(jī)入門(mén)--常見(jiàn)單片機(jī)PIC\STM32
    發(fā)表于 11-13 14:36 ?43次下載
    <b class='flag-5'>單片機(jī)</b>入門(mén)--<b class='flag-5'>常見(jiàn)</b><b class='flag-5'>單片機(jī)</b>PIC\STM32

    這篇把單片機(jī)數(shù)字濾波算法講絕了

    單片機(jī)主要作用是控制外圍的器件,并實(shí)現(xiàn)一定的通信和數(shù)據(jù)處理。但在某些特定場(chǎng)合,不可避免地要用到數(shù)學(xué)運(yùn)算,盡管單片機(jī)并不擅長(zhǎng)實(shí)現(xiàn)算法和進(jìn)行復(fù)雜的運(yùn)算。下面主要是介紹如何用
    發(fā)表于 02-10 10:22 ?8次下載
    這篇把<b class='flag-5'>單片機(jī)</b>數(shù)字<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>講絕了

    單片機(jī)十種常見(jiàn)的ADC濾波算法

    單片機(jī)主要作用是控制外圍的器件,并實(shí)現(xiàn)一定的通信和數(shù)據(jù)處理。但在某些特定場(chǎng)合,不可避免地要用到數(shù)學(xué)運(yùn)算,盡管單片機(jī)并不擅長(zhǎng)實(shí)現(xiàn)算法和進(jìn)行復(fù)雜的運(yùn)算。下面給大家介紹十種
    發(fā)表于 10-02 15:21 ?1458次閱讀

    單片機(jī)十種常見(jiàn)濾波算法介紹

    我們都知道,單片機(jī)的主要作用是控制外圍的器件,并實(shí)現(xiàn)一定的通信和數(shù)據(jù)處理。但在某些特定場(chǎng)合,不可避免地要用到數(shù)學(xué)運(yùn)算,盡管單片機(jī)并不擅長(zhǎng)實(shí)現(xiàn)算法和進(jìn)行復(fù)雜的運(yùn)算。
    的頭像 發(fā)表于 11-06 21:41 ?5705次閱讀

    單片機(jī)引腳的VCC和VDD有什么區(qū)別?

    單片機(jī)作為一種常見(jiàn)的嵌入式設(shè)備,是許多電子設(shè)備和系統(tǒng)必不可少的一部分。而在單片機(jī)的設(shè)計(jì)和應(yīng)用,電源電壓是一個(gè)非常重要的參數(shù),而其中VCC
    的頭像 發(fā)表于 04-27 17:29 ?8044次閱讀
    <b class='flag-5'>單片機(jī)</b>引腳<b class='flag-5'>中</b>的VCC和VDD有什么區(qū)別?

    單片機(jī)ADC,十大C語(yǔ)言濾波算法

    單片機(jī)ADC,十大C語(yǔ)言濾波算法
    的頭像 發(fā)表于 10-24 15:53 ?1152次閱讀