快速哈達瑪變換

2021-08-18 04:51:28 字數 1056 閱讀 5826

在生成哈達瑪矩陣的文章中我已經提到了沃爾什函式,其實也就是快速哈達瑪變換,他是針對與壓縮感知中壓縮過程中對哈達瑪矩陣的行進行乙個變換,這麼做可以更好的壓縮影象,並更好的進行解壓。

簡單的實現就是寫成二進位制表示沒然後儲存反向格雷碼就是新矩陣所對應的行號。

#include 

#include

#define m 128

int num = 1; //需要轉換的數

int number = 0;

int gray_number(int num_h)

}printf("num_h=%d", num_h);

printf("\n");

int i = 0;

while (1)

}///

printf("\ni=%d\n", i);

for (i = i; i0;

printf("\ni=%d binary[i]=%d\n", i, binary[i]);

}int j = 0;

for (j = 0; jprintf("binary[j]=%d %d\n", binary[j], j);

}printf("\n%d", i);

//得到反向的格雷碼

int k = 0, gray_num = 0;

for (k = 0; k1; k++)

else

gray[k] = gray_num;

}gray[i - 1] = binary[i - 1];

printf("\ngray\n", i);

for (j = 0; jprintf("%d", gray[j]);

}printf("\nlast number\n", i);

for (j = 0; jpow((double)2, (int)(i - j - 1));

}printf("number=%d", number);

printf("\n");

return number;

}int main()

生成哈達瑪矩陣

哈達瑪 hadamard 矩陣是由 1和 1元素構成的正交方陣。所謂正交方陣,指它的任意兩行 或兩列 都是正交的,且任意一行 列 的所有元素的平方和等於方陣的階數。即 設a為n階由 1和 1元素構成的方陣,若aa ni 這裡a 為a的轉置,i為單位方陣 則稱a為n階hadamard矩陣。已有人證明,...

快速傅利葉變換 快速數論變換

update 3.29.2017 2月10日初學,記得那時好像是正月十五放假那一天 當時寫了手寫版的筆記 過去近50天差不多忘光了,於是複習一下,具體請看手寫版筆記 參考文獻 picks miskcoo menci 阮一峰 i 表示逆時針旋轉90度 a bi 對應復平面上的向量 複數加法同向量 複數...

快速傅利葉變換

學習快速傅利葉變化是量子計算中的基礎,查了很多資料,以下鏈結可以作為參考 本部落格部分知識學習於 最後這個裡面有解釋蝴蝶效應是怎麼來的!實用數字訊號處理 dft 離散傅利葉變換 o n2 計算多項式乘法 fft 快速傅利葉變換 o n log n 計算多項式乘法 fntt ntt 快速傅利葉變換的優...