⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 address_sin7.m

📁 正弦值查找表是用matlab代码写的
💻 M
字号:
%function address_sin;
%in=pi/4097:pi/4096:2*pi;
in=0:7/8192:7;
quan_width=18;
in_v=round(in.*(2^quan_width)); %quan_width决定了实际地址和量化后的地址差
interval=2/2048
interval_v=round(interval*(2^quan_width-1))%表中的bits小数
addr=round(in/interval);
addr_v=fix(in_v/interval_v);

n=1:1000;
figure(1)
plot(n,addr(n)-addr_v(n),'r');

for i=1:8193
    if (addr(i)==0|addr(i)==3217|addr(i)==6434)
       addr_quad(i)=0;
   else   if(addr(i)==1608|addr(i)==4825)
          addr_quad(i)=1608;
           else 
               if (addr(i)<1608)
               addr_quad(i)=addr(i);
               else if (addr(i)<3217)
                  addr_quad(i)=3217-addr(i);
                    else  if (addr(i)<4825)
                           addr_quad(i)=addr(i)-3217;
                          else  if(addr(i)<6434)  
                                   addr_quad(i)=6434-addr(i); 
                               else
                                   addr_quad(i)=1;
                               end
                           end
                  end
              end
            end
        end
    end
end
for i=1:8193
    if (addr_v(i)==0|addr_v(i)==3217|addr_v(i)==6434)
        addr_v_quad(i)=0;
    else  if(addr_v(i)==1608|addr_v(i)==4825)
                   addr_v_quad(i)=1608;
           else if (addr_v(i)<1608)
                     addr_v_quad(i)=addr_v(i);
                else if (addr_v(i)<3217)
                       addr_v_quad(i)=3217-addr_v(i);
                     else  if (addr_v(i)<4825)
                     addr_v_quad(i)=addr_v(i)-3217;
                           else if(addr_v(i)<6434)  
                                   addr_v_quad(i)=6434-addr_v(i); 
                               else
                                   addr_v_quad(i)=1;
                               end
                           end
                     end
                 end
             end
         end
     end
     
                       

       
%this function is for the creation of .mif file
%parameters:depth,width,radix
%function creat_coe(depth,width);
depth=2^11;%2^11 %depth决定了按量化前后的地址查sin表所得值间区别
width=15;
A=2^(width-1)-1;
sinx=round(A*sin(2*(0:2047)/depth));
% length(sinx)
% plot(addr_quad)
    sin1=sinx(addr_quad+1);
    sin2=sinx(addr_v_quad+1);
   
    error=sin1-sin2;
    figure(2)
    plot(error,'g');
    figure(3)
    plot(addr_quad,sin1,'r');
    figure(4)
    plot(addr_v_quad,sin2,'y');
    figure(5)
    plot(addr_quad,sin1,'r',addr_v_quad,sin2,'y');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -