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

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

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

如何在單片機上做插值算法?

Q4MP_gh_c472c21 ? 來源:21ic論壇 ? 作者:一路向北lm ? 2021-01-26 10:14 ? 次閱讀

第一步:學(xué)你所學(xué),不懂也得懂,最枯燥的數(shù)學(xué)公式來了

在數(shù)值分析中,拉格朗日插值法是以法國十八世紀(jì)數(shù)學(xué)家約瑟夫·拉格朗日命名的一種多項式插值方法。許多實際問題中都用函數(shù)來表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過實驗和觀測來了解。 如對實踐中的某個物理量進行觀測,在若干個不同的地方得到相應(yīng)的觀測值,拉格朗日插值法可以找到一個多項式,其恰好在各個觀測的點取到觀測到的值。這樣的多項式稱為拉格朗日(插值)多項式。 數(shù)學(xué)上來說,拉格朗日插值法可以給出一個恰好穿過二維平面上若干個已知點的多項式函數(shù)。拉格朗日插值法最早被英國數(shù)學(xué)家愛德華·華林于1779年發(fā)現(xiàn),不久后(1783年)由萊昂哈德·歐拉再次發(fā)現(xiàn)。1795年,拉格朗日在其著作《師范學(xué)校數(shù)學(xué)基礎(chǔ)教程》中發(fā)表了這個插值方法,從此他的名字就和這個方法聯(lián)系在一起。

b6863858-5f63-11eb-8b86-12bb97331649.png



第二步:構(gòu)造拉格朗日插值算法函數(shù),并使用C/C++ 語言實現(xiàn)

b6d1732c-5f63-11eb-8b86-12bb97331649.png

//預(yù)先定義插值節(jié)點的個數(shù)為1000個,根據(jù)控制臺輸入的個數(shù)num從而確定插值節(jié)點的個數(shù)const int N=1000;// 拉格朗日插值算法float lglr(float x[], float y[],int n,float t){float yResult=0.0;//LValue[N]存放的是每次求解的插值基函數(shù)的通項float LValue[N];//循環(huán)變量k,mint k,m;//插值基函數(shù)中的上下累乘temp1,temp2float temp1,temp2;for(k=0;k

b7335614-5f63-11eb-8b86-12bb97331649.png


2.同樣是給寫入的算法送入正弦曲線3個點,來預(yù)測此區(qū)間的其它點,發(fā)現(xiàn)預(yù)測出的正弦曲線不太理想,相關(guān)度很差。

b7882ec8-5f63-11eb-8b86-12bb97331649.png

3.增加給寫入的算法送入正弦曲線的點數(shù)到10個點,來預(yù)測此區(qū)間的其它點,發(fā)現(xiàn)預(yù)測出的正弦曲線已達到要求,相關(guān)度很好。

b7d45302-5f63-11eb-8b86-12bb97331649.png


4.下面是使用matlab在繪制的圖像,分別是線性3點、正弦3、5、10的和原始值對比的圖像。

b84918b8-5f63-11eb-8b86-12bb97331649.png



第四步:移植到單片機使用串口輸出測試插值效果,效果還可以哦!

b89679aa-5f63-11eb-8b86-12bb97331649.png



第四步:進階完善,有點不甘心,使用Qt 搭了一個界面,做了一下可視化。 你別說效果還可以,Qt界面代碼 放到了gitee有興趣的來一起完善 https://gitee.com/lumengcode/my-qt/tree/master/MathTool/MathTool



插值題外話:

關(guān)于插值算法:可以繼續(xù)完善牛頓插值、三次樣條插值等,都很好玩!

原文標(biāo)題:教你在單片機上做插值算法

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631960
  • 插值算法
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2030

原文標(biāo)題:教你在單片機上做插值算法

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問TPA3112D1的datasheet上的control system要連在單片機上嗎?

    請問TPA3112D1的datasheet上的control system 要連在單片機上嗎?AVCC是連在單片機上的某個引腳嗎?PVCC是連接電源嗎?附件是datasheet上給的參考電路圖。
    發(fā)表于 10-31 08:32

    TAS5711用GDE生成的EQ cfg配置文件怎么加載到單片機上?

    TAS5711 的用GDE 生成的EQcfg配置文件怎么加載到單片機上。
    發(fā)表于 10-25 13:48

    基于51單片機的智能防火GSM上報仿真

    設(shè)定的報警時,蜂鳴器響,相應(yīng)的指示燈亮;當(dāng)測得的溫度和煙霧同時超過報警時,電機轉(zhuǎn)動,表示滅火; (4)報警時,利用GSM模塊(仿真中無GSM模塊,用串口模擬)將測得的溫度與煙霧
    的頭像 發(fā)表于 10-21 11:48 ?145次閱讀
    基于51<b class='flag-5'>單片機</b>的智能防火GSM上報仿真

    單片機燒錄程序的線比單片機上的少還能燒錄嗎

    單片機燒錄原理 單片機燒錄是指將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機的存儲器中,使其能夠按照程序的指令運行。這個過程通常需要使用燒錄器或者編程器等設(shè)備,通過一定的接口與單片機進行
    的頭像 發(fā)表于 09-02 09:54 ?367次閱讀

    一個暑假如何學(xué)習(xí)單片機

    一個暑假是學(xué)習(xí)和掌握單片機基礎(chǔ)知識的良好時機。以下是一個關(guān)于如何在暑假期間學(xué)習(xí)單片機的建議計劃
    的頭像 發(fā)表于 07-03 09:19 ?465次閱讀
    一個暑假如何學(xué)習(xí)<b class='flag-5'>單片機</b>

    單片機上位機軟件用什么開發(fā)

    在開發(fā)單片機上位機軟件時,選擇合適的開發(fā)工具和編程語言至關(guān)重要。本文將詳細介紹單片機上位機軟件開發(fā)的各個方面,包括開發(fā)環(huán)境、編程語言、界面設(shè)計、通信協(xié)議、調(diào)試與測試等。 1. 開發(fā)環(huán)境選擇 開發(fā)單片機上
    的頭像 發(fā)表于 06-07 09:17 ?1120次閱讀

    何在labview FPGA端實現(xiàn)二維的功能?

    例如,現(xiàn)在有X,C,W三個,每一組(X.C)對應(yīng)一個W,我擁有幾組(X,C)和W的對應(yīng)關(guān)系(即具體數(shù)值),我要根據(jù)未知的一組(X,C)來通過值得到W。其中X和C沒有對應(yīng)關(guān)系,請
    發(fā)表于 05-15 14:59

    單片機上用malloc()是個坑,有隱患?

    單片機研發(fā)前幾年,一直沒用過動態(tài)內(nèi)存分配的功能,但是如果想成為軟件架構(gòu)設(shè)計師,這是繞不過的一道坎。
    的頭像 發(fā)表于 02-22 15:53 ?1661次閱讀
    <b class='flag-5'>單片機上</b>用malloc()是個坑,有隱患?

    什么是線性插值?一維線性插值和雙線性插值在BMS開發(fā)中的應(yīng)用

    線性插值法(linear interpolation),是指使用連接兩個已知量的直線來確定在這兩個已知量之間的一個未知量的的方法。
    的頭像 發(fā)表于 12-24 10:44 ?8620次閱讀
    什么是線性<b class='flag-5'>插值</b>?一維線性<b class='flag-5'>插值</b>和雙線性<b class='flag-5'>插值</b>在BMS開發(fā)中的應(yīng)用

    圖像理論研究之雙三次插值

    雙三次插值又叫雙立方,用于在圖像中“”(Interpolating)或增加“像素”(Pixel)數(shù)量/密度的一種方法。通常利用
    的頭像 發(fā)表于 12-14 14:35 ?1006次閱讀
    圖像<b class='flag-5'>插</b><b class='flag-5'>值</b>理論研究之雙三次<b class='flag-5'>插值</b>

    何在更小的空間內(nèi)獲取更高的電容?

    何在更小的空間內(nèi)獲取更高的電容
    的頭像 發(fā)表于 12-04 15:04 ?384次閱讀
    如<b class='flag-5'>何在</b>更小的空間內(nèi)獲取更高的電容<b class='flag-5'>值</b>?

    關(guān)于AD5940移植到其他單片機上的問題求解

    與NRF52840單片機是否兼容? 2、AD5940在SPI讀/寫之前是否需要一些特殊的配置,具體步驟是什么? 3、官方網(wǎng)站上的代碼是否都是正確的,可以使用的? 4、如果我想把AD5940單獨移植到我的單片機上作為它的一部分,具體應(yīng)該怎么
    發(fā)表于 12-01 06:05

    基于FPGA的線性插值-中

    ; } } //Y2為利用線性插值直接計算得到的,此處為了模擬FPGA除法會損失小數(shù),因此把除法和乘法分開處理。 int Y2 = (141 - 137) * (i - 30) ; Y2= Y2
    發(fā)表于 11-23 23:09

    基于FPGA的線性插值-上

    ,并且除法會消耗大量的資源。 本文提出一種基于查找法實現(xiàn)線性插值算法,不需要利用除法實現(xiàn)線性插值。 2,方法原理 由當(dāng)D是A,B的中點時,可以求出D的坐標(biāo)為: x\' = (x1
    發(fā)表于 11-20 23:10

    單片機上電后沒有運轉(zhuǎn),首先要檢查什么?

    單片機上電后沒有運轉(zhuǎn),首先要檢查什么? 當(dāng)單片機上電后沒有運轉(zhuǎn)時,我們需要進行一系列的檢查,以確定導(dǎo)致問題的根源。 導(dǎo)語: 在現(xiàn)代科技領(lǐng)域中,單片機扮演著重要的角色,它廣泛應(yīng)用于各種電子設(shè)備中。然而
    的頭像 發(fā)表于 11-17 14:16 ?3624次閱讀