浮点,simulink 定标指导,定点

浮点,simulink 定标指导,定点
浮点,simulink 定标指导,定点

Simulink代码生成系列(定点数)8

2010-04-11 21:21:41| 分类:项目4_高性能DSP | 标签: |举报 |字号大中小订阅

李会先(整理MATLAB)

关于定点数

定点数和它们的数据类型以字长、二进制小数点、有符号还是无符号为特征,SIMULINK定点软件支持整数和定点数,它们的主要区别是小数点。

一般的二进制定点数表示为:

定点数的标度

对于同等字长度,定点数的动态范围远小于浮点数,为了避免溢出和最小化量化误差,定点数需要标度,因此用如下方法来表示一个定点数。

?V是任意精度的实数

?是实数的近似

?Q是一个存储值,用来编码V

?S=F

是斜率

?B是偏差(基准)

斜率被分成两个部分:

?

确定二进制小数点,E是2的幂指数

?F是斜率调整因子,规范化时1≤F﹤2

只有缩放标度的二进制小数

?F=1

?S=F

=

?B=0

一个被量化的实数的标度用斜率S定义,这被严格的限制为2的幂,负的2的幂指数被称为分数长度,分数长度是二进制小数点右边的比特数。对于仅有缩放的二进制小数,定点数据类型表示为:?signed types —fixdt(1, WordLength, FractionLength)

?unsigned types —fixdt(0, WordLength, FractionLength)

整数是定点数类型的特殊情况,整数的用斜率为1直接标度,偏差为0,或者相当于分数长度为0,整数表达为:

?signed integer —fixdt(1, WordLength, 0)

?unsigned integer —fixdt(0, WordLength, 0)

斜率和偏差(基准)标度

当用斜率和偏差标度,被量化的实数的斜率S和偏差B可以使任何值,斜率必须是正数,用S和B定点数被表达为:

?fixdt(Signed, WordLength, Slope, Bias)

范围和精度

数的范围给出了表达的限制,精度给出了表达连续两数之间的距离,定点数的范围和精度取决于字的长度和标度。

下面是SIMULINK中几种定点数的表示方法,数的范围和精度.

?定点数据类型范围和默认标度

? 8位定点数据类型-只由缩放标度的二进制小数

? 8位定点数据类型范围-斜率和偏差(基准)标度

SIMULINK里常用的定点数据类型符号.

一个例子和解释

sfix16_Sp2_B10表示fixdt(1, 16, 0.2, 10),也就是16位符号定点数,斜率是0.2

偏差是(基准)10. sfix16_En6表示 fixdt(1, 16, 6),也就是16位符号定点数,分数长6位.

浮点到定点的转化

(2009-04-18 14:17:00)

转载▼

标签:

分类:program

定点

定标

q

dsp

定点仿真

c

it

一DSP定点算数运算

1 数的定标

在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位。显然,字长越长,所能表示的数的范围越大,精度也越高。如无特别说明,本书均以16位字长为例。DSP芯片的数以2的补码形式表示。每个16位数用一个符号位来表示数的正负,0表示数值为正,l则表示数值为负。其余15位表示数值的大小。因此,

二进制数0010000000000011b=8195

二进制数1111111111111100b= -4

对DSP芯片而言,参与数值运算的数就是16位的整型数。但在许多情况下,数学运算过程中的数不一定都是整数。那么,DSP芯片是如何处理小数的呢?应该说,DSP芯片本身无能为力。那么是不是说DSP芯片就不能处理各种小数呢?当然不是。这其中的关键就是由程序员来确定一个数的小数点处于16位中的哪一位。这就是数的定标。

通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。数的定标有Q表示法和S表示法两种。表1.1列出了一个16位数的16种Q表示、S 表示及它

们所能表示的十进制数值范围。

从表1.1可以看出,同样一个16位数,若小数点设定的位置不同,它所表示的数也就不同。例如,

16进制数2000H=8192,用Q0表示

16进制数2000H=0.25,用Q15表示

但对于DSP芯片来说,处理方法是完全相同的。

从表1.1还可以看出,不同的Q所表示的数不仅范围不同,而且精度也不相同。Q越大,

数值范围越小,但精度越高;相反,Q越小,数值范围越大,但精度就越低。例如,Q0 的数值范围是一32768到+32767,其精度为1,而Q15的数值范围为-1到0.9999695,精度为1/32768=0.00003051。因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想

能够表示比较大的数值范围,必须以牺牲精度为代价;而想精度提高,则数的表示范围就

相应地减小。在实际的定点算法中,为了达到最佳的性能,必须充分考虑到这一点。

浮点数与定点数的转换关系可表示为:

浮点数(x)转换为定点数(xq):xq=(int)x* 2Q

定点数(xq)转换为浮点数(x):x=(float)xq*2-Q

例如,浮点数x=0.5,定标Q=15,则定点数xq=L0.5*32768J=16384,式中LJ表示下取整。反之,一个用Q=15表示的定点数 16384,其浮点数为163幼*2-15=16384/32768=0.5。浮点数转换为定点数时,为了降低截尾误差,在取整前可以先加上0.5。

表1.1 Q表示、S表示及数值范围

Q表示 S表示十进制数表示范围

Q15 S0.15 -1≤x≤0.9999695

Q14 S1.14 -2≤x≤1.9999390

Q13 S2.13 -4≤x≤3.9998779

Q12 S3.12 -8≤x≤7.9997559

Q11 S4.11 -16≤x≤15.9995117

Q10 S5.10 -32≤x≤31.9990234

Q9 S6.9 -64≤x≤63.9980469

Q8 S7.8 -128≤x≤127.9960938

Q7 S8.7 -256≤x≤255.9921875

Q6 S9.6 -512≤x≤511.9804375

Q5 S10.5 -1024≤x≤1023.96875

Q4 S11.4 -2048≤x≤2047.9375

Q3 S12.3 -4096≤x≤4095.875

Q2 S13.2 -8192≤x≤8191.75

Q1 S14.1 -16384≤x≤16383.5

Q0 S15.0 -32768≤x≤32767

2 高级语言:从浮点到定点

我们在编写DSP模拟算法时,为了方便,一般都是采用高级语言(如C语言)来编写模拟程序。程序中所用的变量一般既有整型数,又有浮点数。如例1.1程序中的变量i是整型数,而pi是浮点数,hamwindow则是浮点数组。

例1.1 256点汉明窗计算

int i;+

float pi=3.14l59;

float hamwindow[256];

for(i=0;i<256;i++) hamwindow=0.54-0.46*cos(2.0*pi*i/255);

如果我们要将上述程序用某种足点DSP芯片来实现,则需将上述程序改写为DSP芯片的汇编语言程序。为了DSP程序调试的方便及模拟定点DSP实现时的算法性能,在编写DSP汇编程序之前一般需将高级语言浮点算法改写为高级语言定点算法。下面我们讨论基本算术运算的定点实现方法。

2.1 加法/减法运算的C语言定点摸拟

设浮点加法运算的表达式为:

float x,y,z;

z=x+y;

将浮点加法/减法转化为定点加法/减法时最重要的一点就是必须保证两个操作数的定标temp=x+temp;

z=temp>>(Qx-Qz),若Qx>=Qz

z=temp<<(Qz-Qx),若Qx<=Qz

例1.4结果超过16位的定点加法

设x=l5000,y=20000,则浮点运算值为z=x+y=35000,显然z>32767,因此

Qx=1,Qy=0,Qz=0,则定点加法为:

x=30000;y=20000;

temp=20000<<1=40000;

temp=temp+x=40000+30000=70000;

z=70000L>>1=35000;

因为z的Q值为0,所以定点值z=35000就是浮点值,这里z是一个长整型数。当加法或加法的结果超过16位表示范围时,如果程序员事先能够了解到这种情况,并且需要保持运算精度时,则必须保持32位结果。如果程序中是按照16位数进行运算的,则超过16位实际上就是出现了溢出。如果不采取适当的措施,则数据溢出会导致运算精度的严重恶化。一般的定点DSP芯片都没有溢出保护功能,当溢出保护功能有效时,一旦出现溢出,则累加器ACC的结果为最大的饱和值(上溢为7FFFH,下溢为8001H),从而达到防止溢出引起精度严重恶化的目的。

2.2乘法运算的C语言定点模拟

设浮点乘法运算的表达式为:

float x,y,z;

z=xy;

假设经过统计后x的定标值为Qx,y的定标值为Qy,乘积z的定标值为Qz,则

z=xy

zq*2-Qx=xq*yq*2-(Qx+Qy)

zq=(xqyq)2Qz-(Qx+Qy)

所以定点表示的乘法为:

int x,y,z;

long temp;

temp=(long)x;

z=(temp*y)>>(Qx+Qy-Qz);

例1.5定点乘法。

设x=18.4,y=36.8,则浮点运算值为=18.4*36.8=677.12;

根据上节,得Qx=10,Qy=9,Qz=5,所以

x=18841;y=18841;

temp=18841L;

z=(18841L*18841)>>(10+9-5)=354983281L>>14=21666;

因为z的定标值为5,故定点z=21666,即为浮点的z=21666/32=677.08。

2.3除法运算的C语言定点摸拟

设浮点除法运算的表达式为:

float x,y,z;

z=x/y;

假设经过统计后被除数x的定标值为Qx,除数y的定标值为Qy,商z的定标值为Qz,则z=x/y

zq*2-Qz=(xq*2-Qx)/(yq*2-Qy)

zq=(xq*2(Qz-Qx+Qy))/yq

所以定点表示的除法为:

int x,y,z;

long temp;

temp=(long)x;

z=(temp<<(Qz-Qx+Qy))/y;

例1.6定点除法。

设x=18.4,y=36.8,浮点运算值为z=x/y=18.4/36.8=0.5;

根据上节,得Qx=10,Qy=9,Qz=15;所以有

z=18841,y=18841;

temp=(long)18841;

z=(18841L<<(15-10+9)/18841=3O8690944L/18841=16384;

因为商z的定标值为15,所以定点z=16384,即为浮点z=16384/215=0.5。

2.4程序变量的Q值确定

在前面几节介绍的例子中,由于x,y,z的值都是已知的,因此从浮点变为定点时Q值很好确定。在实际的DSP应用中,程序中参与运算的都是变量,那么如何确定浮点程序中变量的Q值呢?从前面的分析可以知道,确定变量的Q值实际上就是确定变量的动态范围,动态范围确定了,则Q值也就确定了。

设变量的绝对值的最大值为|max|,注意|max|必须小于或等于32767。取一个整数n,使满

2n-1<|max|<2n

则有

2-Q=2-15*2n=2-(15-n)

Q=15-n

例如,某变量的值在-1至+1之间,即|max|<1,因此n=0,Q=15-n=15。

既然确定了变量的|max|就可以确定其Q值,那么变量的|max|又是如何确定的呢?一般来说,确定变量的|max|有两种方法。一种是理论分析法,另一种是统计分析法。

1. 理论分析法

有些变量的动态范围通过理论分析是可以确定的。例如:

(1)三角函数。y=sin(x)或y=cos(x),由三角函数知识可知,|y|<=1。

(2)汉明窗。y(n)=0.54一0.46cos[nπn/(N-1)],0<=n<=N-1。因为-1<=cos[2πn/(N-1)]<=1,所

以0.08<=y(n)<=1.0。

(3)FIR卷积。y(n)=∑h(k)x(n-k),设∑|h(k)|=1.0,且x(n)是模拟信号12位量化值,即有

|x(n)|<=211,则|y(n)|<=211。

(4)理论已经证明,在自相关线性预测编码(LPC)的程序设计中,反射系数ki满足下列不等式:|ki|<1.0,i=1,2,...,p,p为LPC的阶数。

2. 统计分析法

对于理论上无法确定范围的变量,一般采用统计分析的方法来确定其动态范围。所谓统计

分析,就是用足够多的输入信号样值来确定程序中变量的动态范围,这里输入信号一方面

要有一定的数量,另一方面必须尽可能地涉及各种情况。例如,在语音信号分析中,统计分析时就必须来集足够多的语音信号样值,并且在所采集的语音样值中,应尽可能地包含各种情况。如音量的大小,声音的种类(男声、女声等)。只有这样,统计出来的结果才能具有典型性。

当然,统计分析毕竟不可能涉及所有可能发生的情况,因此,对统计得出的结果在程序设计时可采取一些保护措施,如适当牺牲一些精度,Q值取比统计值稍大些,使用DSP芯片提供的溢出保护功能等。

2.5浮点至定点变换的C程序举例

本节我们通过一个例子来说明C程序从浮点变换至定点的方法。这是一个对语音信号(0.3~3.4kHz)进行低通滤波的C语言程序,低通滤波的截止频率为 800Hz,滤波器采用19点的有限冲击响应FIR滤波。语音信号的采样频率为8kHz,每个语音样值按16位整型数存放在insp.dat文件中。

例1.7语音信号800Hz 19点FIR低通滤波C语言浮点程序。

#i nclude

const int length=180

void filter(int xin[],int xout[],int n,float h[]);

static float h[19]=

{0.01218354,-0.009012882,-0.02881839,-0.04743239,-0.04584568,

-0.008692503,0.06446265,0.1544655,0.2289794,0.257883,

0.2289794,0.1544655,0.06446265,-0.008692503,-0.04584568,

-0.04743239,-0.02881839,-0.009012882,O.01218354};

static int xl[length+20];

void filter(int xin[],int xout[],int n,float h[])

{

int i,j;

float sum;

for(i=0;i for(i=0;i<length;i++)

{

sum=0.0;

for(j=0;j<n;j++)sum+=h[j]*x1[i-j+n-1];

xout=(int)sum;

for(i=0;i<(n-l);i++)x1[n-i-2]=xin[length-1-i];

}

void main()

FILE *fp1,*fp2;

int frame,indata[length],outdata[length];

fp1=fopen(insp.dat,"rb");

fp2=fopen(Outsp.dat,"wb");

frame=0;

while(feof(fp1) ==0)

{

frame++;

printf(“frame=%d\n”,frame);

for(i=0;i<length;i++)indata=getw(fp1);

filter(indata,outdata,19,h);

for(i=0;i<length;i++)putw(outdata,fp2);

}

fcloseall();

return(0);

}

例1.8语音信号800Hz l9点FIR低通滤波C语言定点程序。#i nclude

const int length=180;

void filter (int xin[],int xout[],int n,int h[]);

static int h[19]={399,-296,-945,-1555,-1503,-285,2112,5061,7503,8450,7503,5061,2112,-285,-1503,-1555,-945,-296,399};

static int x1[length+20];

void filter(int xin[],int xout[],int n,int h[])

int i,j;

long sum;

for(i=0;i<length;i++)x1[n+i-111=xin];

for(i=0;i<1ength;i++)

sum=0;

for(j=0;j<n;j++)sum+=(long)h[j]*x1[i-j+n-1];

xout=sum>>15;

for(i=0;i<(n-1);i++)x1[n-i-2]=xin[length-i-1];

}

主程序与浮点的完全一样。“

3 DSP定点算术运算

定点DSP芯片的数值表示基于2的补码表示形式。每个16位数用l个符号位、i个整数位和15-i个小数位来表示。因此:

00000010.10100000

表示的值为:

21+2-1+2-3=2.625

这个数可用Q8格式(8个小数位)来表示,其表示的数值范围为-128至+l27.996,一个Q8定点数的小数精度为1/256=0.004。

虽然特殊情况(如动态范围和精度要求)必须使用混合表示法。但是,更通常的是全部以Q15格式表示的小数或以Q0格式表示的整数来工作。这一点对于主要是乘法和累加的信

号处理算法特别现实,小数乘以小数得小数,整数乘以整数得整数。当然,乘积累加时可能会出现溢出现象,在这种情况下,程序员应当了解数学里面的物理过程以注意可能的溢出情况。下面我们来讨论乘法、加法和除法的DSP定点运算,汇编程序以TMS320C25为例。

3.1定点乘法

两个定点数相乘时可以分为下列三种情况:

1. 小数乘小数

例1.9 Q15*Q15=Q30

0.5*0.5=0.25

0.100000000000000;Q15

* 0.100000000000000;Q15

--------------------------------------------

00.010000000000000000000000

000000=0.25;Q30

两个Q15的小数相乘后得到一个Q30的小数,即有两个符号位。一般情况下相乘后得到的满精度数不必全部保留,而只需保留16位单精度数。由于相乘后得到的高16位不满15位的小数据度,为了达到15位精度,可将乘积左移一位,下面是上述乘法的TMS320C25程序:

LT OP1;OP1=4000H(0.5/Q15)

MPY OP2;oP2=4000H(0.5/Ql5)

PAC

SACH ANS,1;ANS=2000H(0.25/Q15)

SIMULINK模块介绍

示波器的使用和数据保存 1.示波器的参数 " Number of axes" 项用于设定示波器的Y 轴数量,即示波器的输入信号端口的个数,其预设值为"1" ,也就是说该示波器可以用来观 察一路信号,将其设为"2" ,则可以同时观察两路信号,并且示波器的图标也自动变为有两个输入端口,依次类推,这样一个示波器可以同时观察多路信号。 "Time range" (时间范围) ,用于设定示波器时间轴的最大值,这一般可以选自动(auto) ,这样X 轴就自动以系统仿真参数设置中的起始和终止时间作为示披器的时间显示范围。 第三项用于选择标签的贴放位置。 第四项用于选择数据取样方式,其中Decimation 方式是当右边栏设为"3" 时,则每3 个数据取一个,设为"5" 时,则是5 中取1 ,设的数字越大显示的波形就越粗糙,但是数据存储的空间可以减少。一般该项保持预置值"1" ,这样输入的数据都显示,画出的波形较光滑漂亮。如果取样方式选Sample time 采样方式,则其右栏里输入的是采样的时间间隔,这时将

按采样间隔提取数据显示。该页中还有一项"Floating scope" 选择,如果在它左方的小框中点击选中,则该示波器成为浮动的示波器,即没有输入接口,但可以接收其他模块发送来的数据。 示波器设置的第二页是数据页,这里有两项选择。第一项是数据点数,预置值是5000 ,即可以显示5000个数据,若超过5000 个数据,则删掉前面的保留后面的。也可以不选该项,这样所有数据都显示,在计算量大时对内存的要求高一些。如果选中了数据页的第二项"Save data to workspace" ,即将数据放到工作间去,则仿真的结果可以保存起来,并可以用MATLAB 的绘图命令来处理,也可以用其他绘图软件画出更漂亮的图形。 在保存数据栏下,还有两项设置,第一项是保存的数据命名(Variable name) ,这时给数据起一个名,以便将来调用时识别。第二项是选择数据的保存格式(Format) ,该处有3 种选择:Arrary格式适用于只有一个输入变量的情况;Structure with time 和Structure 这两种格式适用于以矢量表示的多个变量情况,并且前者同时保存数值和时间,后者仅保存数值。用Arrary 格式保存的变量,为了以后可以用

小升初英语句型转换最全汇总

1肯定句改否定句的方法: 1、在be动词后加not。如:is not , are not , am not 2、在can,should, will等后加not。如:cannot, should not, will not; 3、上述都没有的,在动词前加助动词否定形式don’t/doesn’t/didn’t。 4、 some 改成any。 如:I am a girl. → I am not a girl. You are a student. →You are not a student. →You aren’t a student. This is Tom’s bag → This is not Tom’s bag.→ This isn’t Tom’s bag. 2肯定句改一般疑问句的方法 1、把be动词放在句首,剩下的照抄,(some 改成any,I改成you,my改成your,)句点改成问号。 2、把can,shall, will等放到句首,剩下的照抄,(some 改成any,I改成you,my改成your,)句点改成问号。 3、上述都没有的,在句首请助动词Do/Does/Did帮忙,剩下的照抄,(some 改成any,I改成you,my改成your,)句点改成问号。 注意:句首的第一个字母要大写,句尾标点应为“?”。 如: I am in Class 6. →Are you in Class 6? You are from America. →Are you from America? It is an orange. →Is it an orange? 4、就一般疑问句回答 一般疑问句有两种回答,即:肯定回答和否定回答。其中,肯定回答用yes否定回答用no。语句顺序为:Yes + 主语 + am /is/ are/was/were.|can.|do/does/did|; No + 主语+ am not/ isn’t/ aren’t 如: —Are you an English teacher?→Yes I am. /No I am not. —Is that a bird? →Yes it is./ No it isn’t. 3对划线部分提问 “就划线部分提问”是小学阶段英语学习的难点,但是一旦掌握了规律,就变得容易多了。小学英语对划线部分提问之答题口诀: 一代:用正确的疑问词代替划线部分。 二移:把疑问词移至句首 三倒:颠倒主谓语,但对主语或其定语提问时除外(some 改成any,I改成you,my改成your), 四抄:照抄句子剩余部分。 ★特殊疑问词的确定要根据划线内容而定在小学阶段常出现的有以下几种: 1划线部分是“事或物”,特殊疑问词用what 如: This is a book.---What is this? I often play football on Saturdays .---What do you often do on Saturdays ? 2划线部分是“人”,特殊疑问词用who 如:He is my brother. ---Who is he ? 3划线部分是“地点”,特殊疑问词用where 如:The box is on the desk.---Where is the box ?

十进制数与十六进制数的转换方法

若十进制数23785转为十六进制,则用23785/16=1486余9,1486/16=92余14,92/16=5余12,5/16=0余5,十六进制中,10对应为a、11对应为b、。。。。。。、15对应为f,再将余数倒写为5ce9,则十进制23785=十六进制5ce9 十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。 假设有一个十六进数2AF5, 那么如何换算成10进制呢? 用竖式计算:2AF5换算成10进制: 第0位:5 * 16^0 = 5 第1位:F * 16^1 = 240 第2位:A * 16^2 = 2560 第3位:2 * 16^3 = 8192 + ------------------------------------- 10997 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方不过次方要从0开始 十进制转二进制:用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 1/2 = 0 余1 故二进制为100101110 二进制转八进制 在把二进制数转换为八进制表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最低位后补若干个0.然后从左到右把每组的八进制码依次写出,即得转换结果. 你算一下就知道了啊比如110=2^2+2+0=6 二进制转十六进制 要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,分的不够的前边补零,用四位数的二进制数来代表一个16进制。转换表如下,括号内为十六进制 0000(0)0001 (1)0010 (2)0011 (3)0100 (4)0101 (5)0110 (6)0111 (7)1000 (8)1001 (9)1010(A)1011 (B)

Simulink常用模块简介

1 Continuous(连续模块) Integrator :输入信号积分 Derivative :输入信号微分 State-Space :线性状态空间系统模型 Transfer-Fcn :线性传递函数模型 Zero-Pole :以零极点表示的传递函数模型 Memory :存储上一时刻的状态值 Transport Delay :输入信号延时一个固定时间再输出 Variable Transport Delay :输入信号延时一个可变时间再输出 2 Discrete (离散模块) Discrete-time Integrator :离散时间积分 Discrete Filter :IIR与FIR滤波器 Discrete State-Space :离散状态空间系统模型 Discrete Transfer-Fcn :离散传递函数模型 Discrete Zero-Pole :以零极点表示的离散传递函数模型 First-Order Hold :一阶采样和保持器 Unit Delay :一个采样周期的延时 3 Function&Tables(函数和表格模块) Fcn :用自己定义的函数(表达式)进行运算 MATLAB Fcn :利用MA TLAB的现有函数进行运算 S-Function :调用自编的S函数的程序进行运算 Look-Up Table :建立输入信号的查询表(线性峰值匹配) Look-Up Table (2-D):建立两个输入信号的查询表(线性峰值匹配) 4 Math Operations(数学运算模块) Sum :加减运算 Product :乘运算 Dot Product :点乘运算 Gain :比例运算 Math Function :包括指数函数、对数函数、求平方、开根号等常用数学函数Trigonometric Function :三角函数,包括正弦、余弦、正切等 MinMax :最值运算 Abs :取绝对值 Sign :符号函数 Logical Operator :逻辑运算 Relational Operator :关系运算 Complex to Magnitude-Angle :由复数输入转为幅值和相角输出 Magnitude-Angle to Complex :由幅值和相角输入合成复数输出 Complex to Real-Imag :由复数输入转为实部和虚部输出 Real-Imag to Complex :由实部和虚部输入合成复数输出 5 Nonlinear (非线性模块) Saturation :饱和输出,让输出超过某一值时能够饱和 Relay :滞环比较器,限制输出值在某一范围内变化 Switch :开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。

译林版五年级上册句型转换规则归纳

句型转换规则归纳 1.含有be动词(am, is, are)的句子,改为否定句是在be动词后面加not,原来 句子中的some改为any; 改为一般疑问句的时候,将be动词直接放到句子的最前面,原来句子中的some改为any,句号改为问号。((如果主语是第一人称则变成第二人称)) 1)There is a house in the forest. (肯定句) There is not a house in the forest. (否定句) is not=isn’t Is there a house in the forest? (一般疑问句) 2)There are some classrooms in the school. (肯定句) There are not any classrooms in the school. (否定句) are not=aren’t Are there any classrooms in the school? (一般疑问句) 3) I am a new student. (肯定句) I am not a new student. (否定句)am not没有缩写形式 Are you a new student?(一般疑问句) (主语是第一人称I时,改为一般疑问句时主语要变为第二人称you) 2.含有情态动词如:can, may ,must, would,should ,could, will 的句子,改否定 句时直接在情态动词后面加not, 原来句子中的some改为any; 改为一般疑问句的时候,将情态动词直接放到句子的最前面,原来句子中的some改为any,句号改为问号。((如果主语是第一人称则变成第二人称)) 1)I can play basketball. (肯定句) I can not play basketball. (否定句) can not = can’t Can you play basketball? (一般疑问句) 3.不含有be动词,也没有情态动词的句子,改为否定句的时候需要借助助动词 don’t和doesn’t来否定,原来句子中的some改为any; 改为一般疑问句的时候需要借助Do, Does来提问,原来句子中的some改为any,句号改问号。(如果主语是第一人称则变成第二人称) 1) 主语是第三人称如He, She, It或者单数人名做主语的时候,需要借助 doesn’t否定,Does来提问,原来句子中的some改为any,在助动词后面需要用动词原形。 He has an animal friend. (肯定句) He doesn’t have an animal friend. (否定句) Does he have an animal friend? (一般疑问句) Tom wants some cakes for lunch. (肯定句) Tom doesn’t want any cakes for lunch. (否定句) Does Tom want any cakes for lunch? (一般疑问句) 2) 除第三人称外的其他主语(I, You, We, You, They),需要借助don’t否定, Do提问,原来句子中的some改为any,同样助动词后面需要用动词原形。 I have some animal friends. (肯定句) I don’t have any animal friends. ( 否定句) Do you have any animal friends? (一般疑问句)

十进制数与十六进制数的转换方法

一,十进制转换十六进制 若十进制数23785转为十六进制,则用 23785/16=1486余9, 1486/16=92余……14, 92/16=5余………….12, 5/16=0余……………..5,十六进制中,10对应为a、11对应为b、。。。。。。、15对应为f,再将余数倒写为5ce9,则十进制23785=十六进制5ce9 二,十六进制转换十进制 十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。 假设有一个十六进数2AF5, 那么如何换算成10进制呢? 用竖式计算:2AF5换算成10进制: 第0位:5 * 16^0 = 5 第1位:F * 16^1 = 240 第2位:A * 16^2 = 2560 第3位:2 * 16^3 = 8192 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 三,二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方不过次方要从0开始 十进制转二进制:用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 1/2 = 0 余1 故二进制为100101110 四,二进制转八进制 在把二进制数转换为八进制表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最低位后补若干个0.然后从左到右把每组的八进制码依次写出,即得转换结果. 你算一下就知道了啊比如110=2^2+2+0=6 五,二进制转十六进制 要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,分的不够的前边补零,用四位数的二进制数来代表一个16进制。转换表如下,括号内为十六进制 0000(0)0001(1)0010(2)0011(3)0100(4)0101(5) 0110(6)0111(7)1000(8)1001(9)1010(A)1011(B) 1100(C)1101(D)1110(E)1111(F) 例如:10101011划分为1010 1011,根据转换表十六进制为AB

浮点算法转换成硬件定点算法中的问题

浮点算法转换成硬件定点算法中的问题 回北京航空航天大学唐清贵夏宇闻 引言 DSP和FPGA是信号处理工程设计领域发展最快的两个分支G目前9它们的应用非常普及9但是要开发出占用资源少9运行速度快的高质量硬件体系结构比较困难G 在通常情况下9算法的硬件实现都需要采用定点运算并考虑并行结构G 但是在实际的许多应用中9比如图像处理\语音压缩等9需要进行大量复杂的数据运算9而且对数据的精度及动态范围都要求比较高9所以9算法模型大多都以浮点数为基础G另一方面9浮点算法在硬件实现上有相当大的难度9不仅占用的系统资源较多9而且硬件运行的速度也较慢9在很多场合下不能很好地满足系统实时性的要求G因此9电子工程师为了提高系统的性能9一般都会先对浮点算法进行仔细的分析9结合工程的实际要求9综合考虑诸多因素9然后再将其转化为定点算法并通过硬件来实现G 因此9如何使转化后的算法在硬件上能正确地运行是设计开发人员特别关心的问题G解决该问题的唯一途径就是使处理后的数据保持系统要求的精度和动态范围9否则就会因为数据处理不当9使系统产生莫名奇妙的故障9从而导致系统的失败G在遇到此类问题时9务必要谨慎对待9以免造成不可估量的损失G 1浮点与定点运算的比较 在开发过程中9必须要对应用的数据精度及动态范围有清楚的认识9并在开始设计硬件结构前9先进行算法定点化的研究工作9严格按照工程设计的实际需求在数学运算上对算法进行数字定点化处理并计算验证G只有这样9才能保证最终设计的硬件体系结构产生的运算结果符合设计需求G 为了更好的说明如何成功的完成浮点算法向定点算法的转化9首先对浮点数和定点数进行简要回顾G 浮点数由三部分组成C指数部分\尾数部分和符号位9如图l所示G图l中T\l分别为指数和尾数的位宽9浮点 数据的数值U f p 表示为C U f p =(_l)S"U s"Z U e 其中9S为符号位的值9U s为尾数的数值9U e是指数的数值G在I EEE754标准中9单精度浮点指数位数为89尾数位数为Z39还有l位符号位G数据绝对值最小可以是Z.O>l O-389最大可以是Z.O>l O+389双精度浮点指数位数为l l9尾数位数为5Z9同样也有l位符号位G数据绝对值最小可以是Z.O>l O-3O89最大可以是Z.O>l O+3O8G 定点数的表示方法和浮点数相对应9数据直接用二进制表示9且小数点在数据的位置固定G和浮点数相比9它的运算简单9没有浮点数尾数对齐和归一化问题G因此9在硬件上实现以定点数为基础的算法占用的面积少\性能高9故定点运算是信号处理硬件实现中最常用的一种方式G但是9由于定点数表示的范围远远小于浮点数9所以在实现过程可能会有许多的隐患9如在运算过程中9经常会碰到溢出问题和病态方程等问题G 2精度处理策略 根据上面的分析9可以看到9浮点算法与定点算法主要的不同之处在于算法中的数据精度和动态范围G因此9只要解决了转化后由于数据的精度和动态范围减小引起的问题9那就等于解决了算法的转化问题G 目前9为了保证转化后的算法能正确地实现系统功能9对数据精度处理的方法主要有舍弃最低位和采用最大字长等G前者以损失精度来保证计算中的无溢出9但是得到的结果往往与实际值有一定的差距9从而使系统在很多情况下不能稳定地运行S后者通过应用分析找出所需数据的最大字长(该字长为运算中精度无损失条件下数据的长度)9然后再以最大字长的方式进行算法中所有数据的运算9该方法虽然保证了计算结果的正确和精度9但是它的缺点在于造成了资源的巨大浪费9限制了硬件运行速度的提高9因为实现算法中的某些运算所需的字长远远小于最大字长G最佳的转化应该是使处理后算法中的数据既能 图 1 Z OO5.lZ M icrocontrollers Embedded S y ste ms75

SIMULINK模块介绍

关于光盘的使用说明 本光盘共包含六个子目录,其中三个是DSP_FORTRAN, DSP_C和DSP_MATLAB,另外三个是有关习题所需要的数据或文献。DSP_FORTRAN和DSP_C各含有约40个信号处理的子程序,概括了书中所涉及到的绝大部分算法。程序分别由FORTRAN语言和C语言编写(MA模型、ARMA模型及最小方差谱估计三个算法只给出了用C语言编写的程序, 没有给出相应的FORTRAN子程序),并在PC机上调试通过。编译环境是FORTRAN77 V5. 10和TURBO C2. 0。DSP_MATLAB含有近120多个用MA TLAB编写的信号处理程序,它们是本书各个章节的大部分例题,使用的是MA TLAB6.1。 FORTRAN子程序名称的长度全都是6位,扩展名为.for,C语言子程序的名称全部是7位,由相应的FORTRAN子程序在其名称前加字母m而形成,并将扩展名改为.c。为了方便读者的使用,光盘中还给出了调用FORTRAN子程序的简单主程序。读者只需将此主程序和主程序指定的子程序作编译、连接和运行,即可得出相应的结果。FORTRAN主程序的名称为7位或8位,它是在原FORTRAN子程序前加字母h所构成的,扩展名仍是.for。h后面的一个数(如果有的话)表示该程序是相应子程序的第几个主程序。例如,子程序desiir.for是用来设计IIR滤波器的FORTRAN子程序,对应的C程序是mdesiir.c,调用desiir.for 的第一个主程序是h1desiir.for(设计低通IIR DF),依此类推。 用MATLAB编写的程序的名称由“exa”开头,接下来是所在的章、节及例题的序号,如exa010101,指的是第1章第1节(即1.1节)的第1个例题,即例1.1.1。如果该程序是为了说明某一个m文件的应用,则在上述名称的后面跟一个下划线,再在后面加上所说明的MATLAB文件的名称,如exa011001_rand,即是例1.10.1,该例用来说明rand.m文件的应用。应该说明的是,这些MATLAB程序不是像所附的FORTRAN和C程序那样作为一个个子程序应用,而是用来说明书上的例题及各个m文件的应用。 用FORTRAN和C语言编写的每一个子程序的功能及调用时各个参数的含义已在程序的开头作了较为详细的说明,此处不再赘述。所附程序中,绝大多数都是作者和其研究生编写的,也有少量是参考国外已公开发表的杂志和教科书,如经典的FFT和REMEZ算法等。 下面给出的是用FORTRAN语言和C语言编写的程序的名称、功能以及有关问题的说明,程序按字母顺序排列。 1.aftodf.for,maftodf.c

六年级英语句型转换 汇总

小学六年级英语句型转换汇总 1、This is my English book.(变成复数) 2、My father is an engineer. (对画线部分提问) 3、His football is on the bed. (对画线部分提问) 4、I do my homework on Sunday (改成否定句) 5、She is play basketball on the playground.(改为一般疑问句并做否定回答) 6、He can keep the book as long as you need. (对画线部分提问) 7、Which is the way to the office building?(写出同义句) 8、How old are you?(根据实际回答问题) 9、I ever saw a traveller.(改为一般疑问句) 10、He came here by plane.(对划线部分提问) 11、She is from France(对划线部分提问) 12、Tt is my first time to Xi’an. (改成否定句) 13、The weather was OK. (改为一般疑问句) 14、My trip to Xi’an was great. (对画线部分提问) 15、We can see beautiful flowers in the park. (改为一般疑问句并做肯定回答) 16、I can see green trees in the picture. (对划线部分提问) 17、Was the weather bad?(做出否定回答) 18、I have some beautiful photos of the city. (改为一般疑问句)

各种进制之间转换方法

各进制转换方法(转载) 一、计算机中数的表示: 首先,要搞清楚下面3个概念 ?数码:表示数的符号 ?基:数码的个数 ?权:每一位所具有的值 请看例子: 数制十进制二进制八进制十六进制 数码0~9 0~1 0~7 0~15 基10 2 8 16 权10o,101,102,…2o,21,22,…8o,81,82,…16o,161,162,…特点逢十进一逢二进一逢八进一逢十六进一 十进制4956= 4*103+9*102 +5*101+6*10o 二进制1011=1*23+0*22 +1*21+1*2o 八进制4275=4*83+2*82 +7*81+5*8o 十六进制81AE=8*163+1*162 +10*161+14*16o

二、各种进制的转换问题 1.二、八、十六进制转换成十进制 2.十进制转换成二、八、十六进制 3.二进制、八进制的互相转换 4.二进制、十六进制的互相转换 1、二、八、十六进制转换成十进制 方法:数码乘以相应权之和 2、十进制转换成二、八、十六进制 方法:连续除以基,直至商为0,从低到高记录余数

3、二进制、八进制的互相转换 方法: ?二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 ?八进制转换成二进制:用3位二进制数代替每一位八进制数 例(1101001)2=(001,101,001)2=(151)8 例 (246)8=(010,100,110)2=(10100110)2 4、二进制、十六进制的互相转换 方法: ?二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 ?十六进制转换成二进制:用4位二进制数代替每一位十六进制数 例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16 例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2 三、各种进制数的运算

浮点转定点计算

一DSP定点算数运算 1 数的定标 在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位。显然,字长越长,所能表示的数的范围越大,精度也越高。如无特别说明,本书均以16位字长为例。 DSP芯片的数以2的补码形式表示。每个16位数用一个符号位来表示数的正负,0表示数值为正,l则表示数值为负。其余15位表示数值的大小。因此, 二进制数0010000000000011b=8195 二进制数1111111111111100b= -4 对DSP芯片而言,参与数值运算的数就是16位的整型数。但在许多情况下,数学运算过程中的数不一定都是整数。那么,DSP芯片是如何处理小数的呢?应该说,DSP芯片本身无能为力。那么是不是说DSP芯片就不能处理各种小数呢?当然不是。这其中的关键就是由程序员来确定一个数的小数点处于16位中的哪一位。这就是数的定标。 通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。数的定标有Q表示法和S表示法两种。表1.1列出了一个16位数的16种Q表示、S表示及它们所能表示的十进制数值范围。 从表1.1可以看出,同样一个16位数,若小数点设定的位置不同,它所表示的数也就不同。例如, 16进制数2000H=8192,用Q0表示 16进制数2000H=0.25,用Q15表示 但对于DSP芯片来说,处理方法是完全相同的。 从表1.1还可以看出,不同的Q所表示的数不仅范围不同,而且精度也不相同。Q越大,数值范围越小,但精度越高;相反,Q越小,数值范围越大,但精度就越低。例如,Q0 的数值范围是一32768到+32767,其精度为1,而Q15的数值范围为-1到0.9999695,精度为1/32768=0.00003051。因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想精度提高,则数的表示范围就相应地减小。在实际的定点算法中,为了达到最佳的性能,必须充分考虑到这一点。 浮点数与定点数的转换关系可表示为: 浮点数(x)转换为定点数(xq):xq=(int)x* 2Q 定点数(xq)转换为浮点数(x):x=(float)xq*2-Q 例如,浮点数x=0.5,定标Q=15,则定点数xq=[0.5*32768]=16384,式中[]表示下取整。反之,一个用Q=15表示的定点数16384,其浮点数为16384/2e15=16384/32768=0.5。浮点数转换为定点数时,为了降低截尾误差,在取整前可以先加上0.5。 表1.1 Q表示、S表示及数值范围 Q表示 S表示十进制数表示范围 Q15 S0.15 -1≤x≤0.9999695 Q14 S1.14 -2≤x≤1.9999390 Q13 S2.13 -4≤x≤3.9998779 Q12 S3.12 -8≤x≤7.9997559 Q11 S4.11 -16≤x≤15.9995117 Q10 S5.10 -32≤x≤31.9990234 Q9 S6.9 -64≤x≤63.9980469 Q8 S7.8 -128≤x≤127.9960938 Q7 S8.7 -256≤x≤255.9921875

SIMULINK的模块库介绍

SIMULINK的模块库介绍 (1)Commonly Used Bus Creator Create signal bus Bus Selector Select signals from incoming bus Constant Generate constant value Data Type Conversion Convert input signal to specified data type Demux Extract and output elements of vector signal Discrete-Time Integrator Perform discrete-time integration or accumulation of signal Gain Multiply input by constant Ground Ground unconnected input port Inport Create input port for subsystem or external input Integrator,Integrator Limited Integrate signal Logical Operator Perform specified logical operation on input Mux Combine several input signals into vector Outport Create output port for subsystem or external output Product Multiply and divide scalars and nonscalars or multiply and invert matrices Relational Operator Perform specified relational operation on inputs Saturation Limit range of signal Scope and Floating Display signals generated during simulation

小学英语句型转换方法归纳

小学英语句型转换方法归纳 句型转换方法归纳改为一般疑问句 1 、先找 be 动词am, is, are, was, were 或情态动词 can, may ,must, would , should ,could . 如果有这些词,直接把这些词放在句子最前面, some 改成 any ,句号改成问号!其余照抄;(如果主语是第一人称则变成第二人称) 2 、如果句子中没有 be 动词或者是情态动词,要在句子最前面加助动词 do 、 does 或者是 did 。首先判断句子时态,如果句子是过去式 改为一般疑问句 1、先找be动词 am, is, are, was, were或情态动词can, may ,must, would,should ,could .如果有这些词,直接把这些词放在句子最前面, some 改成any,句号改成问号!其余照抄;(如果主语是第一人称则变成第二人称) 2、如果句子中没有be动词或者是情态动词,要在句子最前面加助动词 do 、does或者是did。 首先判断句子时态,如果句子是过去式,则要在句最前面加Did,后面动词用原型,some改成any,句号改成问号,其余照抄;(如果主语是第一人称则变成第二人称) 如果句子不是过去式,则判断是否为第三人称单数,如果第三人称单数,要在句子最前面前加助动词Does,后面动词用

原型,some 改成any,句号改成问号,其余部分照抄。(如果主语是第一人称则变成第二人称) 其他情况均要在句子最前面加助动词do,some改成any,句号改成问号,其它部分照抄.(如果主语是第一人称则变成第二人称) 改为否定句 1、先找be动词 am, is, are, was, were或情态动词can, may ,must, would,should ,could .如果有这些词,直接在这些词的后面加not, some 改成any,其余照抄; 2、如果句子中没有be动词或者是情态动词,要在动词前面加don’t 、doesn’t或者是didn’t。 首先判断句子时态,如果句子是过去式,则要在动词前面加didn’t,后面动词用原型,some改成any,其余照抄; 如果句子不是过去式,则判断是否为第三人称单数,如果第三人称单数,要在动词前面前加doesn’t,后面动词用原型,some 改成any,其余部分照抄。 其他情况均要在句子动词前面加don’t,some改成any,其它部分照抄. 对划线部分提问 第一步:先把句子改成一般问句 第二步:把提问部分省略,在句子最前面加疑问词。(如果提问部分是动词词组,要把它改成do;如果提问部分

浮点转定点方法总结

浮点转定点方法总结 —孔德琦

目录 定点运算方法................................................ 错误!未定义书签。 数的定标 ............................................... 错误!未定义书签。 C语言:从浮点到定点 ................................. 错误!未定义书签。 加法.................................................... 错误!未定义书签。 乘法..................................................... 错误!未定义书签。 除法..................................................... 错误!未定义书签。 三角函数运算............................................ 错误!未定义书签。 开方运算................................................ 错误!未定义书签。 附录...................................................... 错误!未定义书签。 附录1:定点函数库...................................... 错误!未定义书签。 附录2:正弦和余弦表..................................... 错误!未定义书签。

simulink常用模块

SIMILINK模块库按功能进行分为以下8类子库: (1)Continuous(连续模块) (2)Discrete(离散模块) (3)Function&Tables(函数和平台模块) (4)Math(数学模块) (5)Nonlinear(非线性模块) (6)Signals&Systems(信号和系统模块) (7)Sinks(接收器模块) (8)Sources(输入源模块) 连续模块(Continuous)continuous.mdl Integrator:输入信号积分 Derivative:输入信号微分 State-Space:线性状态空间系统模型 Transfer-Fcn:线性传递函数模型 Zero-Pole:以零极点表示的传递函数模型 Memory:存储上一时刻的状态值 TransportDelay:输入信号延时一个固定时间再输出VariableTransportDelay:输入信号延时一个可变时间再输出离散模块(Discrete)discrete.mdl Discrete-timeIntegrator:离散时间积分器DiscreteFilter:IIR与FIR滤波器 DiscreteState-Space:离散状态空间系统模型

DiscreteTransfer-Fcn:离散传递函数模型 DiscreteZero-Pole:以零极点表示的离散传递函数模型 First-OrderHold:一阶采样和保持器 Zero-OrderHold:零阶采样和保持器 UnitDelay:一个采样周期的延时 函数和平台模块(Function&Tables)function.mdl Fcn:用自定义的函数(表达式)进行运算 S-Function:调用自编的S函数的程序进行运算 Look-UpTable:建立输入信号的查询表(线性峰值匹配) Look-UpTable(2-D):建立两个输入信号的查询表(线性峰值匹配) 数学模块(Math)math.mdl Sum:加减运算 Product:乘运算 DotProduct:点乘运算 Gain:比例运算 MathFunction:包括指数函数、对数函数、求平方、开根号等常用数学函数TrigonometricFunction:三角函数,包括正弦、余弦、正切等 MinMax:最值运算 Abs:取绝对值 Sign:符号函数 LogicalOperator:逻辑运算

六年级英语句型转换方法归纳

句型转换方法归纳 改为一般疑问句 1、先找be动词 am, is, are, was, were或情态动词can, may ,must, would,should ,could .如果有这些词,直 接把这些词放在句子最前面, some 改成any,句号改成问号!其余照抄;(如果主语是第一人称则变成第二人称)2、如果句子中没有be动词或者是情态动词,要在句子最前面加助动词 do 、does或者是did。 首先判断句子时态,如果句子是过去式,则要在句最前面加Did,后面动词用原型,some改成any,句号改成问号,其余照抄;(如果主语是第一人称则变成第二人称) 如果句子不是过去式,则判断是否为第三人称单数,如果第三人称单数,要在句子最前面前加助动词Does,后面动词用原型,some 改成any,句号改成问号,其余部分照抄。(如果主语是第一人称则变成第二人称) 其他情况均要在句子最前面加助动词do,some改成any,句号改成问号,其它部分照抄. (如果主语是第一人称则变成第二人称) 改为否定句 1、先找be动词 am, is, are, was, were或情态动词can, may ,must, would,should ,could .如果有这些词,直 接在这些词的后面加not, some 改成any,其余照抄; 2、如果句子中没有be动词或者是情态动词,要在动词前面加don’t 、doesn’t或者是didn’t。 首先判断句子时态,如果句子是过去式,则要在动词前面加didn’t,后面动词用原型,some改成any,其余照抄; 如果句子不是过去式,则判断是否为第三人称单数,如果第三人称单数,要在动词前面前加doesn’t,后面动词用原型,some 改成any,其余部分照抄。 其他情况均要在句子动词前面加don’t,some改成any,其它部分照抄. 对划线部分提问 第一步:先把句子改成一般问句 第二步:把提问部分省略,在句子最前面加疑问词。(如果提问部分是动词词组,要把它改成do;如果提问部分是动名词词组,要把它改成doing) (注:如划线部分为主语,则用who代替,其余照抄;如划线部分为动词或动词短语,则用do代替,句前加 (注:我I 、我们we 是第一人称;你you,你们you是第二人称;剩下的全部是第三人称) 单词意思用法when 什么时间问时间who 谁问人whose 谁的问主人where 在哪里问地点which 哪一个问选择why 为什么问原因what 什么问东西what time 什么时间问时间what colour 什么颜色问颜色what about …怎么样问意见what day 星期几问星期what date 什么日期问具体日期what for 为何目的问目的how …怎么样问情况how old 多大问年龄how many 多少问数量how much 多少问价钱how about …怎么样问意见how far 多远问路程 情态动词练习 1. You _____ all those clothes. We have a washing machine to do that sort of thing. A. needn’t have washed B. shouldn’t have washed C. must not have washed D. can not have washed

相关文档
最新文档