亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fft.s

?? arm嵌入式系統開發--軟件設計與優化隨書源代碼。開發環境asm+c。dsp部分。
?? S
?? 第 1 頁 / 共 5 頁
字號:
;// ____________________________________________________________________
;//
;// Copyright (c) 2003, Andrew N. Sloss, Dominic Symes, Chris Wright
;// All rights reserved.
;// ____________________________________________________________________
;// 
;// NON-COMMERCIAL USE License
;// 
;// Redistribution and use in source and binary forms, with or without 
;// modification, are permitted provided that the following conditions 
;// are met: 
;//
;// 1. For NON-COMMERCIAL USE only.
;// 
;// 2. Redistributions of source code must retain the above copyright 
;//    notice, this list of conditions and the following disclaimer. 
;//
;// 3. Redistributions in binary form must reproduce the above 
;//    copyright notice, this list of conditions and the following 
;//    disclaimer in the documentation and/or other materials provided 
;//    with the distribution. 
;//
;// 4. All advertising materials mentioning features or use of this 
;//    software must display the following acknowledgement:
;//
;//    This product includes software developed by Andrew N. Sloss,
;//    Chris Wright and Dominic Symes. 
;//
;//  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY 
;//  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
;//  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
;//  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE CONTRIBUTORS BE 
;//  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
;//  OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
;//  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
;//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
;//  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 
;//  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
;//  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
;//  OF SUCH DAMAGE. 
;//
;// If you have questions about this license or would like a different
;// license please email : andrew@sloss.net
;//
;// Section 8.5: FFT

        AREA    ch08_5, CODE, READONLY

        EXPORT  fft_16_arm9m
        EXPORT  fft_16_arm9e

;// Example 8.17
        
        ; complex load, x=[a], a+=offset
        MACRO
        C_LDR   $x, $a, $offset
        LDRSH   $x._i, [$a, #2]
        LDRSH   $x._r, [$a], $offset
        MEND
        
        ; complex store, [a]=x, a+=offset
        MACRO
        C_STR   $x, $a, $offset
        STRH    $x._i, [$a, #2]
        STRH    $x._r, [$a], $offset
        MEND        
        
        ; Four point complex Fast Fourier Transform
        ;
        ; (x0,x1,x2,y3)=DFT4(x0,x2>>s,x1>>s,x3>>s)/4
        ;
        ; x0 = (x0 +   (x2>>s) + (x1>>s) +   (x3>>s))/4
        ; x1 = (x0 - i*(x2>>s) - (x1>>s) + i*(x3>>s))/4
        ; x2 = (x0 -   (x2>>s) + (x1>>s) -   (x3>>s))/4
        ; y3 = (x0 + i*(x2>>s) - (x1>>s) - i*(x3>>s))/4
        ;
        MACRO
        C_FFT4  $s
        ; (x2,x3) = (x2+x3, x2-x3)
        ADD     x2_r, x2_r, x3_r
        ADD     x2_i, x2_i, x3_i
        SUB     x3_r, x2_r, x3_r, LSL#1
        SUB     x3_i, x2_i, x3_i, LSL#1
        ; (x0,x1) = (x0+(x1>>s), x0-(x1>>s))/4
        MOV     x0_r, x0_r, ASR#2
        MOV     x0_i, x0_i, ASR#2
        ADD     x0_r, x0_r, x1_r, ASR#(2+$s)
        ADD     x0_i, x0_i, x1_i, ASR#(2+$s)
        SUB     x1_r, x0_r, x1_r, ASR#(1+$s)
        SUB     x1_i, x0_i, x1_i, ASR#(1+$s)
        ; (x0,x2) = (x0+(x2>>s)/4, x0-(x2>>s)/4)
        ADD     x0_r, x0_r, x2_r, ASR#(2+$s)
        ADD     x0_i, x0_i, x2_i, ASR#(2+$s)
        SUB     x2_r, x0_r, x2_r, ASR#(1+$s)
        SUB     x2_i, x0_i, x2_i, ASR#(1+$s)
        ; (x1,y3) = (x1-i*(x3>>s)/4, x1+i*(x3>>s)/4)
        ADD     x1_r, x1_r, x3_i, ASR#(2+$s)
        SUB     x1_i, x1_i, x3_r, ASR#(2+$s)
        SUB     y3_r, x1_r, x3_i, ASR#(1+$s)
        ADD     y3_i, x1_i, x3_r, ASR#(1+$s)
        MEND
        
        ; Complex conjugate multiply a=(xr+i*xi)*(cr-i*ci)
        ;  x = xr + i*xi
        ;  w = (cr-ci) + i*ci
        MACRO
        C_MUL9m $a, $x, $w
        SUB     t1, $x._i, $x._r        ; (xi-xr)
        MUL     t0, t1, $w._i           ; (xi-xr)*ci
        ADD     t1, $w._r, $w._i, LSL#1 ; (cr+ci)
        MLA     $a._i, $x._i, $w._r, t0 ; xi*cr-xr*ci
        MLA     $a._r, $x._r, t1, t0    ; xr*cr+xi*ci
        MEND
        
y       RN 0    ; output complex array y[]
c       RN 0    ; coefficient array
x       RN 1    ; input complex array x[]
N       RN 2    ; number of samples (a power of 2)
S       RN 2    ; the number of blocks
R       RN 3    ; the number of samples in each block
x0_r    RN 4    ; data register (real part)
x0_i    RN 5    ; data register (imaginary part)
x1_r    RN 6
x1_i    RN 7
x2_r    RN 8
x2_i    RN 9
x3_r    RN 10
x3_i    RN 11
y3_r    RN x3_i
y3_i    RN x3_r
t0      RN 12   ; scratch register
t1      RN 14

        ; void fft_16_arm9m(short *y, short *x, unsigned int N)
fft_16_arm9m
        STMFD   sp!, {r4-r11, lr}
        MOV     t0, #0            ; bit reversed counter
first_stage_arm9m
        ; first stage load and bit reverse
        ADD     t1,  x, t0, LSL#2
        C_LDR   x0, t1, N
        C_LDR   x2, t1, N
        C_LDR   x1, t1, N
        C_LDR   x3, t1, N
        C_FFT4  0
        C_STR   x0, y, #4
        C_STR   x1, y, #4
        C_STR   x2, y, #4
        C_STR   y3, y, #4
        EOR     t0, t0, N, LSR#3  ; increment third bit
        TST     t0, N, LSR#3      ; from the top
        BNE     first_stage_arm9m
        EOR     t0, t0, N, LSR#4  ; increment fourth bit
        TST     t0, N, LSR#4      ; from the top
        BNE     first_stage_arm9m
        MOV     t1, N, LSR#5      ; increment fifth
bit_reversed_count_arm9m          ; bits downward
        EOR     t0, t0, t1
        TST     t0, t1
        BNE     first_stage_arm9m
        MOVS    t1, t1, LSR#1
        BNE     bit_reversed_count_arm9m
        ; finished the first stage
        SUB     x, y, N, LSL#2    ; x = working buffer
        MOV     R, #16
        MOVS    S, N, LSR#4
        LDMEQFD sp!, {r4-r11, pc}
        ADR     c, fft_table_arm9m
next_stage_arm9m
        ; S = the number of blocks
        ; R = the number of samples in each block
        STMFD   sp!, {x, S}
        ADD     t0, R, R, LSL#1
        ADD     x, x, t0
        SUB     S, S, #1<<16
next_block_arm9m
        ADD     S, S, R, LSL#(16-2)
next_butterfly_arm9m
        ; S=((number butterflies left-1)<<16)
        ;   + (number of blocks left)
        C_LDR   x0, x, -R
        C_LDR   x3, c, #4
        C_MUL9m x3, x0, x3
        C_LDR   x0, x, -R
        C_LDR   x2, c, #4
        C_MUL9m x2, x0, x2
        C_LDR   x0, x, -R
        C_LDR   x1, c, #4
        C_MUL9m x1, x0, x1
        C_LDR   x0, x, #0
        C_FFT4  14              ; coefficients are Q14
        C_STR   x0, x, R
        C_STR   x1, x, R
        C_STR   x2, x, R
        C_STR   y3, x, #4
        SUBS    S, S, #1<<16
        BGE     next_butterfly_arm9m
        ADD     t0, R, R, LSL#1
        ADD     x, x, t0
        SUB     S, S, #1
        MOVS    t1, S, LSL#16
        SUBNE   c, c, t0
        BNE     next_block_arm9m
        LDMFD   sp!, {x, S}
        MOV     R, R, LSL#2     ; quadrouple block size
        MOVS    S, S, LSR#2     ; quarter number of blocks
        BNE     next_stage_arm9m
        LDMFD   sp!, {r4-r11, pc}
        
fft_table_arm9m
        ; FFT twiddle table of triplets E(3t), E(t), E(2t)
        ; Where E(t)=(cos(t)-sin(t))+i*sin(t) at Q14
        ; N=16 t=2*PI*k/N for k=0,1,2,..,N/4-1
        DCW 0x4000,0x0000, 0x4000,0x0000, 0x4000,0x0000
        DCW 0xdd5d,0x3b21, 0x22a3,0x187e, 0x0000,0x2d41
        DCW 0xa57e,0x2d41, 0x0000,0x2d41, 0xc000,0x4000
        DCW 0xdd5d,0xe782, 0xdd5d,0x3b21, 0xa57e,0x2d41
        ; N=64 t=2*PI*k/N for k=0,1,2,..,N/4-1
        DCW 0x4000,0x0000, 0x4000,0x0000, 0x4000,0x0000
        DCW 0x2aaa,0x1294, 0x396b,0x0646, 0x3249,0x0c7c
        DCW 0x11a8,0x238e, 0x3249,0x0c7c, 0x22a3,0x187e
        DCW 0xf721,0x3179, 0x2aaa,0x1294, 0x11a8,0x238e
        DCW 0xdd5d,0x3b21, 0x22a3,0x187e, 0x0000,0x2d41
        DCW 0xc695,0x3fb1, 0x1a46,0x1e2b, 0xee58,0x3537
        DCW 0xb4be,0x3ec5, 0x11a8,0x238e, 0xdd5d,0x3b21
        DCW 0xa963,0x3871, 0x08df,0x289a, 0xcdb7,0x3ec5
        DCW 0xa57e,0x2d41, 0x0000,0x2d41, 0xc000,0x4000
        DCW 0xa963,0x1e2b, 0xf721,0x3179, 0xb4be,0x3ec5
        DCW 0xb4be,0x0c7c, 0xee58,0x3537, 0xac61,0x3b21
        DCW 0xc695,0xf9ba, 0xe5ba,0x3871, 0xa73b,0x3537
        DCW 0xdd5d,0xe782, 0xdd5d,0x3b21, 0xa57e,0x2d41
        DCW 0xf721,0xd766, 0xd556,0x3d3f, 0xa73b,0x238e
        DCW 0x11a8,0xcac9, 0xcdb7,0x3ec5, 0xac61,0x187e
        DCW 0x2aaa,0xc2c1, 0xc695,0x3fb1, 0xb4be,0x0c7c
        ; N=256 t=2*PI*k/N for k=0,1,2,..,N/4-1
        DCW 0x4000,0x0000, 0x4000,0x0000, 0x4000,0x0000
        DCW 0x3b1e,0x04b5, 0x3e69,0x0192, 0x3cc8,0x0324
        DCW 0x35eb,0x0964, 0x3cc8,0x0324, 0x396b,0x0646
        DCW 0x306c,0x0e06, 0x3b1e,0x04b5, 0x35eb,0x0964
        DCW 0x2aaa,0x1294, 0x396b,0x0646, 0x3249,0x0c7c
        DCW 0x24ae,0x1709, 0x37af,0x07d6, 0x2e88,0x0f8d
        DCW 0x1e7e,0x1b5d, 0x35eb,0x0964, 0x2aaa,0x1294
        DCW 0x1824,0x1f8c, 0x341e,0x0af1, 0x26b3,0x1590
        DCW 0x11a8,0x238e, 0x3249,0x0c7c, 0x22a3,0x187e
        DCW 0x0b14,0x2760, 0x306c,0x0e06, 0x1e7e,0x1b5d
        DCW 0x0471,0x2afb, 0x2e88,0x0f8d, 0x1a46,0x1e2b

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品乱码亚洲一区二区不卡| 1024成人网| 中文字幕av一区 二区| 一区二区三区**美女毛片| 九九国产精品视频| 91成人在线免费观看| 久久久精品综合| 日韩高清电影一区| 在线影视一区二区三区| 亚洲国产精品成人综合| 国内精品视频一区二区三区八戒| 一本大道综合伊人精品热热| 国产亚洲短视频| 麻豆精品视频在线观看免费| 欧美色成人综合| 一区二区久久久| 91网址在线看| 国产精品欧美久久久久无广告 | 亚洲欧美日韩在线不卡| 黑人巨大精品欧美一区| 欧美一卡二卡三卡四卡| 亚洲午夜视频在线观看| 欧洲亚洲精品在线| 国产日韩欧美一区二区三区综合| 免费人成网站在线观看欧美高清| 欧美亚洲禁片免费| 亚洲一区二区三区四区在线观看| youjizz久久| 国产精品久久久久一区| 国产成人精品综合在线观看| 久久综合色综合88| 国产精品中文字幕欧美| 欧美大白屁股肥臀xxxxxx| 日本sm残虐另类| 91精品国产麻豆国产自产在线| 午夜精品福利视频网站| 欧美人体做爰大胆视频| 日韩国产一区二| 日韩欧美国产电影| 国产一区二区三区电影在线观看| 久久欧美一区二区| 国产aⅴ综合色| 亚洲色图一区二区| 欧美影院精品一区| 全国精品久久少妇| 2021久久国产精品不只是精品| 国产一区二区精品久久91| 中文字幕国产精品一区二区| 不卡视频免费播放| 亚洲欧美二区三区| 欧美日韩的一区二区| 日本午夜一本久久久综合| 日韩欧美的一区二区| 国产精品一区二区视频| 亚洲视频你懂的| 91.麻豆视频| 国产大片一区二区| 怡红院av一区二区三区| 911精品国产一区二区在线| 国产中文字幕一区| 亚洲免费在线看| 欧美一区二区三区影视| 国产成人免费视频网站高清观看视频| 国产精品每日更新在线播放网址| 色www精品视频在线观看| 青青草97国产精品免费观看无弹窗版| 337p粉嫩大胆色噜噜噜噜亚洲| www.亚洲国产| 日本中文字幕一区二区有限公司| 国产亚洲欧美日韩在线一区| 色悠久久久久综合欧美99| 奇米影视一区二区三区| 欧美激情一区二区三区全黄| 欧美日韩国产一二三| 国产成人av一区二区| 午夜欧美2019年伦理| 国产欧美日韩综合| 欧美日韩国产电影| 成人av在线观| 毛片av中文字幕一区二区| 亚洲日本青草视频在线怡红院| 91精品国产色综合久久ai换脸 | 色婷婷综合久久久久中文一区二区 | 国产欧美综合色| 欧美日韩国产一级| 91丨porny丨在线| 精品在线亚洲视频| 亚洲va韩国va欧美va| 国产精品免费看片| 精品国产亚洲一区二区三区在线观看| 91丨九色丨黑人外教| 国产一区二区三区免费| 日韩激情av在线| 一区二区三区在线看| 国产精品麻豆久久久| 欧美精品一区二区三区在线播放 | 亚洲狠狠爱一区二区三区| 亚洲国产精品精华液2区45| 欧美一区二区在线观看| 91电影在线观看| 色综合久久中文综合久久牛| 国产99久久久国产精品潘金| 精品系列免费在线观看| 午夜久久久影院| 亚洲一区二区3| 一区二区三区精品在线| 亚洲美女免费在线| 最新国产精品久久精品| 国产精品麻豆久久久| 欧美国产1区2区| 久久夜色精品一区| 精品久久久久久久人人人人传媒 | 亚洲国产精品欧美一二99| 亚洲图片另类小说| 亚洲天堂久久久久久久| 国产精品美女久久久久久久久久久| 久久久久久夜精品精品免费| 精品成人免费观看| 2024国产精品| 国产欧美一区二区三区在线看蜜臀| 精品国产伦一区二区三区观看方式 | 成人性生交大片免费看在线播放| 麻豆国产精品官网| 久久精品久久精品| 精品在线你懂的| 激情都市一区二区| 国产经典欧美精品| av在线一区二区三区| 91首页免费视频| 欧美三级视频在线观看 | 91在线观看美女| 91精品国产综合久久蜜臀| 欧美高清一级片在线| 日韩一区二区影院| 久久综合色一综合色88| 国产欧美精品区一区二区三区| 国产精品视频九色porn| 一个色妞综合视频在线观看| 日韩精品国产精品| 紧缚捆绑精品一区二区| 波多野结衣精品在线| 欧美视频一区在线观看| 欧美v国产在线一区二区三区| 国产婷婷色一区二区三区四区| 中文字幕一区二区视频| 日精品一区二区三区| 国产美女在线观看一区| 欧洲精品一区二区| 精品欧美乱码久久久久久1区2区| 中文字幕巨乱亚洲| 午夜精品久久久| 成人短视频下载| 日韩限制级电影在线观看| 国产亚洲成av人在线观看导航| 亚洲色图.com| 精品无人码麻豆乱码1区2区| 色婷婷亚洲一区二区三区| 欧美一区二区三区在线电影| 国产精品久久久久7777按摩| 日韩国产欧美三级| 91亚洲国产成人精品一区二区三| 欧美美女一区二区在线观看| 日本一区二区成人| 日产国产欧美视频一区精品| 9人人澡人人爽人人精品| 日韩视频中午一区| 亚洲精品第一国产综合野| 国产乱码精品一区二区三区忘忧草 | 日本一区二区免费在线| 亚洲一区二区三区四区在线| 国产不卡一区视频| 欧美一区二区三区在线看| 亚洲精品日韩专区silk| 国产精品一区在线观看乱码| 5858s免费视频成人| 亚洲免费高清视频在线| 国产成人免费视| 欧美一区二区三区性视频| 亚洲精品成人悠悠色影视| 国产不卡一区视频| 精品av久久707| 另类专区欧美蜜桃臀第一页| 欧美影院午夜播放| 亚洲激情图片小说视频| 99精品视频中文字幕| 欧美激情一区二区三区在线| 国产中文字幕一区| 精品国产1区二区| 乱一区二区av| 日韩午夜av电影| 丝袜脚交一区二区| 欧美精品粉嫩高潮一区二区| 亚洲蜜臀av乱码久久精品| 99久久er热在这里只有精品15 | 亚洲天堂中文字幕| 成人黄色片在线观看| 中文字幕av一区 二区| 成人性生交大片免费看中文 | 日韩免费电影一区| 青青青爽久久午夜综合久久午夜 |