注釋**:選中**,ctrl+r
取消注釋:選中**,ctrl+t
採用中括號,可以將兩組資料進行拼接,
由於採用dec2bin是不能轉換負數的,這一點要注意了,那麼就需要表示負數的補碼形式,補碼形式很簡單,就是判斷某個數是否小於0,小於0的數就加上2的n次方,這樣既可轉換為無符號的十進位制,再將其十進位製用dec2bin轉換為二進位制,就是負數的補碼。
以下給出常用的**:
fid=fopen('d:\quartus_project\liruifeng_tem\do_pro\cp2\cp_2_4_matlab_alt_mixnco\sin.txt','w');
%注意在開啟檔案之前首先要建立好目錄路徑
for k=1:length(q_s)
b_s=dec2bin(q_s(k)+(q_s(k)<0)*2^n,n); %q_s小於0就為1,大於0就為0
%k;for j=1:n
if b_s(j)=='1'
tb=1;
else
tb=0;
endfprintf(fid,'%d',tb);
endfprintf(fid,'\r\n');
endfprintf(fid,';');
fclose(fid);
//將混頻濾波後的的1.25mhz單頻訊號dout寫入外部txt檔案中(out.txt)
integer file_out;
initial
begin
file_out=$fopen("out.txt");
//檔案必須放到simulation\modelsim的資料夾中
if(!file_out)
begin
$display("could not open file!");
$finish;
endendwire clk_write;
wire signed[19:0] dout_s; //將混頻後的資料,轉換為有符號數
assign dout_s=dout;
assign clk_write=clk&(rst); //產生寫入的時鐘訊號,復位狀態時候不寫入資料
always @ (posedge clk_write)
$fdisplay(file_out,"%d",dout_s); //將混頻後輸出的有符號的資料,寫入file_out代表的out.txt檔案中
//從外部txt檔案中讀入資料作為測試激勵
reg [9:0] stimulus[1:data_num]; //用於儲存從文字中讀取的資料,全部存放於陣列stimulus中
integer address=0;
initial
begin
$readmemb("sin.txt",stimulus);//檔案必須放到simulation\modelsim的資料夾中
repeat(data_num)
begin
address=address+1;
din=stimulus[address];
#clk_period;
endend
Matlab常用小技巧
matlab常用小技巧 1.m 檔案如果是函式,儲存的檔名最好與函式名一致,這點都很清楚。不過容易疏忽的是,m檔名的命名盡量不要是簡單的英文單詞,最好是由大小寫英文 數字 下劃線等組成。原因是簡單的單詞命名容易與 matlab 內部函式名同名,結果會出現一些莫名其妙的錯誤。例如,寫個 m檔案,命名為...
Matlab常用小技巧
m檔案如果是函式,儲存的檔名最好與函式名一致,這點都很清楚。不過容易疏忽的是,m檔名的命名盡量不要是簡單的英文單詞,最好是由大小寫英文 數字 下劃線等組成。原因是簡單的單詞命名容易與matlab內部函式名同名,結果會出現一些莫名其妙的錯誤。例如,寫個m檔案,命名為spy,執行時就彈出乙個怪怪的fig...
Matlab常用技巧
m檔案如果是函式,儲存的檔名最好與函式名一致,這點都很清楚。不過容易疏忽的是,m檔名的命名盡量不要是簡單的英文單詞,最好是由大小寫英文 數字 下劃線等組成。原因是簡單的單詞命名容易與matlab內部函式名同名,結果會出現一些莫名其妙的錯誤。例如,寫個m檔案,命名為spy,執行時就彈出乙個怪怪的fig...