在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

MATLAB學(xué)習(xí)筆記之傅里葉變換2

jf_78858299 ? 來源:滑小稽筆記 ? 作者:電子技術(shù)園地 ? 2023-02-24 14:47 ? 次閱讀

1.3.3 源代碼分析

(1)創(chuàng)建74HC595驅(qū)動

<1>創(chuàng)建74hc595.h并輸入以下代碼。

#ifndef _74HC595_H_
#define _74HC595_H_
#include "sys.h"
sbit HC595_CLK_X = P0^3 ;                      //X軸595時鐘
sbit HC595_DAT_X = P0^4 ;                      //X軸595數(shù)據(jù)
sbit HC595_RCK_X = P0^5 ;                      //X軸595鎖存
sbit DB16_X      = P0^6 ;                      //增補(bǔ)X軸腳
sbit HC595_CLK_Y = P0^0 ;                      //Y軸595時鐘
sbit HC595_DAT_Y = P0^1 ;                      //Y軸595數(shù)據(jù)
sbit HC595_RCK_Y = P0^2 ;                      //Y軸595鎖存
void HC595_X_Dat( u16 dat ) ;                    //74HC595橫坐標(biāo)數(shù)據(jù)
void HC595_Y_Dat( u16 dat ) ;                    //74HC595縱坐標(biāo)數(shù)據(jù)
#endif

<2>創(chuàng)建74hc595.c并輸入以下代碼。

#include " 74hc595.h "
/********************************************************
Name    :HC595_X_Dat
Function  :74HC595橫坐標(biāo)數(shù)據(jù)
Paramater  :
      dat:寫入的數(shù)據(jù)
Return    :None
********************************************************/
void HC595_X_Dat( u16 dat )
{
  u8 i ;
  for( i=0 ; i<16 ; i++ )
  {
    if( dat&0x8000 )
      HC595_DAT_X = 1 ;
    else
      HC595_DAT_X = 0 ;
    dat <<= 1 ;
    HC595_CLK_X = 0 ;
    HC595_CLK_X = 1 ;
  }
  HC595_RCK_X = 0 ;
  HC595_RCK_X = 1 ;
}
/********************************************************
Name    :HC595_Y_Dat
Function  :74HC595縱坐標(biāo)數(shù)據(jù)
Paramater  :
      dat:寫入的數(shù)據(jù)
Return    :None
********************************************************/
void HC595_Y_Dat( u16 dat )
{
  u8 i ;
  for( i=0 ; i<16 ; i++ )
  {
    if( dat&0x8000 )
      HC595_DAT_Y = 1 ;
    else
      HC595_DAT_Y = 0 ;
    dat <<= 1 ;
    HC595_CLK_Y = 0 ;
    HC595_CLK_Y = 1 ;
  }
  HC595_RCK_Y = 0 ;
  HC595_RCK_Y = 1 ;
}

(2)移植FFT算法

<1>創(chuàng)建fft.h并輸入以下代碼。

#ifndef _FFT_H_
#define _FFT_H_


#include "sys.h"
/*********************************************************************************************************
                    函    數(shù)    列    表
*********************************************************************************************************/
void FFT_Init( void ) ;                                          //FFT初始化
void FFT_Sample( void ) ;                                        //FFT采樣計算(128位)


#endif

<2>創(chuàng)建fft.c并輸入以下代碼。

/*********************************************************************************************************
            FFT    算    法    驅(qū)    動    代    碼
*********************************************************************************************************/
#include "fft.h"
#include "intrins.h"
#include "math.h"
#include "74hc595.h"


//采樣存儲序列表
unsigned char code BRTable[128] ={
0, 64, 32, 96, 16, 80, 48, 112,
8, 72, 40, 104, 24, 88, 56, 120,
4, 68, 36, 100, 20, 84, 52, 116,
12, 76, 44, 108, 28, 92, 60, 124,
2, 66, 34, 98, 18, 82, 50, 114,
10, 74, 42, 106, 26, 90, 58, 122,
6, 70, 38, 102, 22, 86, 54, 118,
14, 78, 46, 110, 30, 94, 62, 126,
1, 65, 33, 97, 17, 81, 49, 113,
9, 73, 41, 105, 25, 89, 57, 121,
5, 69, 37, 101, 21, 85, 53, 117,
13, 77, 45, 109, 29, 93, 61, 125,
3, 67, 35, 99, 19, 83, 51, 115,
11, 75, 43, 107, 27, 91, 59, 123,
7, 71, 39, 103, 23, 87, 55, 119,
15, 79, 47, 111, 31, 95, 63, 127};
char code sin_tabb[128] = {0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 59, 65, 70, 75, 80, 85, 89, 94, 98, 102, 
105, 108, 112, 114, 117, 119, 121, 123, 124, 125, 126, 126, 126, 126, 126, 125, 124, 123, 121, 119, 117, 114, 112, 
108, 105, 102, 98, 94, 89, 85, 80, 75, 70, 65, 59, 54, 48, 42, 36, 30, 24, 18, 12, 6, 0, -6, -12, -18, -24, -30, 
-36, -42, -48, -54, -59, -65, -70, -75, -80, -85, -89, -94, -98, -102, -105, -108, -112, -114, -117, -119, -121, 
-123, -124, -125, -126, -126, -126, -126, -126, -125, -124, -123, -121, -119, -117, -114, -112, -108, -105, -102, 
-98, -94, -89, -85, -80, -75, -70, -65, -59, -54, -48, -42, -36, -30, -24, -18, -12, -6};                         
char code cos_tabb[128] = {127, 126, 126, 125, 124, 123, 121, 119, 117, 114, 112, 108, 105, 102, 98, 94, 
89, 85, 80, 75, 70, 65, 59, 54, 48, 42, 36, 30, 24, 18, 12, 6, 0, -6, -12, -18, -24, -30, -36, -42, -48, -54, -59, 
-65, -70, -75, -80, -85, -89, -94, -98, -102, -105, -108, -112, -114, -117, -119, -121, -123, -124, -125, -126, -
126, -126, -126, -126, -125, -124, -123, -121, -119, -117, -114, -112, -108, -105, -102, -98, -94, -89, -85, -80, 
-75, -70, -65, -59, -54, -48, -42, -36, -30, -24, -18, -12, -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 59, 65, 70, 
75, 80, 85, 89, 94, 98, 102, 105, 108, 112, 114, 117, 119, 121, 123, 124, 125, 126, 126};
xdata unsigned char result[128];
xdata unsigned char temp[128];
xdata unsigned char num[128];
unsigned char timernum;//用于分離
int xdata FftReal[128];
int xdata FftImage[128];
u16 code HC_FFT_TAB_X[] = {
0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080,
0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000,
} ;                                                    //FFT列選
u16 code HC_FFT_TAB_Y[] = {
0xFFFE, 0xFFFC, 0xFFF8, 0xFFF0, 0xFFE0, 0xFFC0, 0xFF80, 0xFF00,
0xFE00, 0xFC00, 0xF800, 0xF000, 0xE000, 0xC000, 0x8000, 0x0000,
} ;                                                    //FFT行選模式
/********************************************************
Name    :ADC_Init
Function  :ADC模塊初始化
Paramater  :None
Return    :None
********************************************************/
void ADC_Init()
{
  P1ASF = 0x01 ;
  ADC_CONTR = 0xE0 ;
}
/********************************************************
Name    :ADC_Read_Byte
Function  :ADC讀取10位字節(jié)
Paramater  :None
Return    :轉(zhuǎn)換結(jié)果的10位數(shù)據(jù)
********************************************************/
float ADC_Read_Byte()
{
  ADC_CONTR = 0xE8 ;
  _nop_() ;
  _nop_() ;
  _nop_() ;
  _nop_() ;
  while ( !( ADC_CONTR&0x10 ) ) ;
  return ( ADC_RES*4+ADC_RESL ) ;
}
/********************************************************
Name    :FFT_Init
Function  :FFT初始化
Paramater  :None
Return    :None
********************************************************/
void FFT_Init()
{
  ADC_Init();
  IE |= 0x82 ;
  TMOD |= 0x01 ;
  TH0 = ( 65535-2048 ) / 256 ;
  TL0 = ( 65535-2048 ) % 256 ;
  TR0 = 1 ;
  P0M0 = 0x40 ;
}
/********************************************************
Name    :FFT_process
Function  :下落遲滯
Paramater  :None
Return    :None
********************************************************/
void FFT_process()
{
  u8 i ;
  for( i=0; i<17; i++ )
  {
    if( result[ i ]>7 )+( ( FftImage[ k+bb ]*sin_tabb[ p ] )>>7 ) ;
        FftImage[ k ] = FftImage[ k ] - ( ( FftReal[ k+bb ]*sin_tabb[ p ] )>>7 )+( ( FftImage[ k+bb ]*cos_tabb[ p ] )>>7 ) ;
        //對稱幅值計算
        FftReal[ k+bb ] = TR -( ( FftReal[ k+bb ]*cos_tabb[ p ] )>>7 )-( ( FftImage[ k+bb ]*sin_tabb[ p ] )>>7 ) ;
        FftImage[ k+bb ] = TI + ( ( temp*sin_tabb[ p ] )>>7 )-( ( FftImage[ k+bb ]*cos_tabb[ p ] )>>7 ) ;
        //除以2
        FftReal[ k ] >>= 1 ;
        FftImage[ k ] >>= 1 ;
        FftReal[ k+bb ] >>= 1 ;
        FftImage[ k+bb ] >>= 1 ;
            }
        }
    }
  //轉(zhuǎn)換為余弦形式
  for( i=0; i<17; i++ )
  {  
    ulReal = FftReal[ i+1 ] ;                                    //獲取實(shí)部
    ulReal *= ulReal ;                                        //計算實(shí)部平方
    ulImage = FftImage[ i+1 ] ;                                    //獲取虛部
    ulImage *= ulImage ;                                      //計算虛部平方
    result[ i ] = sqrt( ulReal+ulImage )*4 ;                            //計算模值
  }
}
/********************************************************
Name    :FFT_Disp
Function  :FFT數(shù)據(jù)顯示
Paramater  :None
Return    :None
********************************************************/
void FFT_Disp()
{
  FFT_process() ;
  if( result[ timernum ]>=16 )
    result[ timernum ] = 15 ;
  if( timernum<16 )
  {
    HC595_X_Dat( HC_FFT_TAB_X[ timernum ] ) ;
    DB16_X = 0 ;
  }
  else
  {
    HC595_X_Dat( 0x0000 ) ;
    DB16_X = 1 ;
  }
  HC595_Y_Dat( HC_FFT_TAB_Y[ result[ timernum ] ] ) ;
  timernum ++ ;
  if( timernum==17 ) 
    timernum = 0 ;
}
/********************************************************
Name    :TIM0
Function  :定時器0中斷服務(wù)函數(shù)
Paramater  :None
Return    :None
********************************************************/
void TIM0() interrupt 1
{
  u8 i , t ;
  TH0 = ( 65535-2048 ) / 256 ;
  TL0 = ( 65535-2048 ) % 256 ;
  t ++ ;
  if( t==17 )
  {
    for( i=0 ; i<17 ; i++ )
      temp[ i ] = result[ i ] ;
    t = 0;
  }
  FFT_Disp() ;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關(guān)注

    關(guān)注

    188

    文章

    2998

    瀏覽量

    233464
  • 線性
    +關(guān)注

    關(guān)注

    0

    文章

    200

    瀏覽量

    25547
  • 傅里葉變換
    +關(guān)注

    關(guān)注

    6

    文章

    442

    瀏覽量

    43051
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    進(jìn)群免費(fèi)領(lǐng)FPGA學(xué)習(xí)資料!數(shù)字信號處理、傅里葉變換與FPGA開發(fā)等

    進(jìn)群免費(fèi)領(lǐng)FPGA學(xué)習(xí)資料啦!小編整理了數(shù)字信號處理、傅里葉變換與FPGA開發(fā)等FPGA必看資料,需要的小伙伴可以加小助手(微信:elecfans123)或進(jìn) QQ 群:913501156 群免費(fèi)領(lǐng)
    發(fā)表于 04-07 16:41

    圖像頻率域分析傅里葉變換

    文章目錄傅里葉變換基礎(chǔ)傅里葉級數(shù)傅里葉積分傅里葉變換一維連續(xù)傅里葉變換一維離散傅里葉變換二維離散傅里葉變換
    發(fā)表于 05-22 07:41

    學(xué)習(xí)傅里葉變換意義和方法

    學(xué)習(xí)傅里葉變換需要面對大量的數(shù)學(xué)公式,數(shù)學(xué)功底較差的同學(xué)聽到傅里葉變換就頭疼。事實(shí)上,許多數(shù)學(xué)功底好的數(shù)字信號處理專業(yè)的同學(xué)也不一定理解傅里葉變換的真實(shí)含義,不能做到學(xué)以致用!事實(shí)上,
    發(fā)表于 06-28 07:31

    DSP變換運(yùn)算-傅里葉變換

    第24章 DSP變換運(yùn)算-傅里葉變換本章節(jié)開始進(jìn)入此教程最重要的知識點(diǎn)之一傅里葉變換。關(guān)于傅里葉變換,本章主要是把傅里葉相關(guān)的基礎(chǔ)知識進(jìn)行必要的介紹,沒有這些基礎(chǔ)知識的話,后面
    發(fā)表于 08-03 06:14

    傅立葉變換matlab實(shí)現(xiàn)

    有關(guān)傅里葉變換matlab教程,簡單明了。
    發(fā)表于 02-23 18:22 ?0次下載

    深入淺出的學(xué)習(xí)傅里葉變換

    見過的介紹傅里葉變換的很好的文章,通俗易懂,轉(zhuǎn)發(fā)的,學(xué)習(xí)
    發(fā)表于 04-29 14:12 ?10次下載

    小波變換傅里葉變換好在哪里_小波變換傅里葉變換詳解

    小波變換傅里葉變換有什么區(qū)別嗎?小波變換傅里葉變換哪個好?我們通過小波變換傅里葉變換的詳細(xì)
    發(fā)表于 01-13 11:02 ?1.6w次閱讀
    小波<b class='flag-5'>變換</b>比<b class='flag-5'>傅里葉變換</b>好在哪里_小波<b class='flag-5'>變換</b>與<b class='flag-5'>傅里葉變換</b>詳解

    時頻分析短時傅里葉變換STFT資源下載

    時頻分析短時傅里葉變換STFT資源下載
    發(fā)表于 04-26 11:35 ?7次下載

    MATLAB學(xué)習(xí)筆記傅里葉變換1

    線性時不變系統(tǒng)** (輸入信號與輸出信號滿足線性關(guān)系,且系統(tǒng)參數(shù)不隨時間變換),無論你采用微分方程或者傳遞函數(shù)還是狀態(tài)空間,所以可以說正弦信號是系統(tǒng)的特征向量,當(dāng)然指數(shù)信號也是系統(tǒng)的特征向量,用于
    的頭像 發(fā)表于 02-24 14:46 ?4491次閱讀
    <b class='flag-5'>MATLAB</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>傅里葉變換</b>1

    傅里葉變換如何用于深度學(xué)習(xí)領(lǐng)域

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中的模型都是遵循數(shù)學(xué)函數(shù)的方式創(chuàng)建的。從數(shù)據(jù)分析到預(yù)測建模,一般情況下都會有數(shù)學(xué)原理的支撐,比如:歐幾里得距離用于檢測聚類中的聚類。 傅里葉變換是一種眾所周知的將函數(shù)從一個域轉(zhuǎn)換
    的頭像 發(fā)表于 06-14 10:01 ?1716次閱讀
    <b class='flag-5'>傅里葉變換</b>如何用于深度<b class='flag-5'>學(xué)習(xí)</b>領(lǐng)域

    深入淺出的學(xué)習(xí)傅里葉變換

    學(xué)習(xí)傅里葉變換需要面對大量的數(shù)學(xué)公式,數(shù)學(xué)功底較差的同學(xué)聽到傅里葉變換就頭疼
    的頭像 發(fā)表于 07-07 14:15 ?915次閱讀
    深入淺出的<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>傅里葉變換</b>

    Matlab實(shí)現(xiàn)傅里葉變換的步驟

    傅里葉變換是將按時間或空間采樣的信號與按頻率采樣的相同信號進(jìn)行關(guān)聯(lián)的數(shù)學(xué)公式。
    的頭像 發(fā)表于 07-19 17:47 ?5803次閱讀
    <b class='flag-5'>Matlab</b>實(shí)現(xiàn)<b class='flag-5'>傅里葉變換</b>的步驟

    傅里葉變換基本性質(zhì) 傅里葉變換本質(zhì) 傅里葉變換的應(yīng)用

    各個領(lǐng)域都有廣泛的應(yīng)用。本文將詳細(xì)介紹傅里葉變換的基本性質(zhì)、本質(zhì)和應(yīng)用。 一、傅里葉變換的基本性質(zhì) 1. 線性性:若f1(t)與f2(t)的傅里葉變換分別為F1(f)和F
    的頭像 發(fā)表于 09-07 16:18 ?6932次閱讀

    傅里葉變換的定義 傅里葉變換的意義

    傅里葉變換的定義 傅里葉變換的意義? 傅里葉變換,表示能將滿足一定條件的某個函數(shù)表示成三角函數(shù)(正弦和/或余弦函數(shù))或者它們的積分的線性組合。 在不同的研究領(lǐng)域,傅里葉變換具有多種不同
    的頭像 發(fā)表于 11-30 15:32 ?3025次閱讀

    傅里葉變換基本原理及在機(jī)器學(xué)習(xí)應(yīng)用

    連續(xù)傅里葉變換(CFT)和離散傅里葉變換(DFT)是兩個常見的變體。CFT用于連續(xù)信號,而DFT應(yīng)用于離散信號,使其與數(shù)字?jǐn)?shù)據(jù)和機(jī)器學(xué)習(xí)任務(wù)更加相關(guān)。
    發(fā)表于 03-20 11:15 ?1349次閱讀
    <b class='flag-5'>傅里葉變換</b>基本原理及在機(jī)器<b class='flag-5'>學(xué)習(xí)</b>應(yīng)用
    主站蜘蛛池模板: 性做久久久久久久免费观看 | 又长又大又粗又硬3p免费视 | 人与牲动交xxxxbbb | 天天玩夜夜操 | 国产午夜视频在线观看网站 | 99热成人精品热久久669 | 看全色黄大色大片免费久久 | 1024 cc香蕉在线观看看中文 | 国产网站免费视频 | www.黄com| 日韩在线三级 | 一区二区不卡视频在线观看 | 天天天干| 色www亚洲国产张柏芝 | 综合久久99 | 免费在线色视频 | 色偷偷狠狠色综合网 | 交在线观看网站视频 | 亚洲伊人久久大香线蕉综合图片 | 午夜激情福利网 | 国产乱人视频免费播放 | 香蕉视频色版在线观看 | 亚洲综合色一区二区三区小说 | 日本视频黄色 | 午夜视频在线免费看 | 在线天堂网www资源种子 | 国产无圣光高清一区二区 | 青青导航 | 国产色视频一区 | 天堂网www在线资源网 | 视频一区二区不卡 | 免费观看国产网址你懂的 | 黄视频网站在线看 | 国产精品毛片久久久久久久 | 六月丁香婷婷网 | 国产欧美日韩在线人成aaaa | 日本三级黄视频 | h在线观看视频 | 好吊色视频988gao在线观看 | 天天干天天干天天 | 美女扒开尿囗给男人玩的动图 |