單音訊號,既單一頻率的訊號,在測試ifft/fft正確性時,我們常常用到單音訊號,一般需要的單音訊號時是複數形式;
fm = 2e6 ; %訊號頻率
fs = 122.88e6; %取樣速率
w = 2*pi*fm;
dt = 1/fs;
t = 0:dt:dt*3275; %3276個點
data = exp(j*w*t);
通過尤拉公式可知,利用 exp(j*w*t)即可生成單音訊號,頻率和取樣率需要根據測試需求自定義;
如果是工程中進行測試,需要將matlab生成的資料進行儲存,此時需要進行定點化;
matlab中複數為double型,每個資料佔據64bit,我們需要將其轉化為16bit,其中可以選擇多少位有效;
在進行定點化前,我們需要先對資料進行歸一化,既除以訊號幅度最大的值,
datainput = fft(data,4096)./2906; ;
此時完成了歸一化,然後進行定點量化,
vector_in_real = (2^12-1)*real(datareshape);
vector_in_imag = (2^12-1)*imag(datareshape);
我選擇的是13位有效,且是有符號位,所以乘以(2^12-1);之後通過round函式進行擷取即可;
vector_real = round(vector_in_real);
vector_imag = round(vector_in_imag);
在工程中,通常不使用.bin 檔案,如果使用.mat檔案,使用c/c++開啟時需要matlab庫函式,此時最好的選擇是儲存為txt檔案,然後以陣列的形式讀取資料;
fid_lpf = fopen('single_data.txt','w');
fprintf(fid_lpf,'%3d,%3d,%3d,%3d,%3d,%3d,%3d,%3d,\n',singleout);
fclose(fid_lpf);
下面講述如何在c語言中開啟txt檔案,
int16_t test[32760]=
#include "single_data.txt"
通過這種方式即可開啟將檔案中的資料以陣列的方式儲存在test中;
Matlab矩陣的產生
1.簡易陣列 matlab的運算事實上是以陣列 array 及矩陣 matrix 方式在做運算,而這二者在matlab的基本運算性質不 同,陣列強調元素對元素的運算,而矩陣則採用線性代數的運算方式。而宣告一變數為陣列或是矩陣時,如果是要個別鍵入元素,須用中括號 將元素置於其中。陣列為一維元素所構成,...
MATLAB 產生頻寬訊號
clc clear all close all 產生中心頻率150mhz 頻寬50mhz,取樣率252mhz的頻寬訊號 tp 65.015e 6 發射時寬.控制點數.比如要輸出的點數是l,tp l fs 16384 252e6 65.015e 6 b 50e6 發射頻寬 k b tp 發射調頻率 f...
如何利用matlab 進行進製轉換
例如 120010代表12時00分10秒,將其轉換為以秒為單位的數字 例如120010代表12時00分10秒,將其轉換為以秒為單位 time 120010 取出最後兩位 time10 mod time,100 刪掉最後兩位 time11 fix time.100 取出中間兩位 分鐘 並乘以 60 t...