| 一個人長久的生活's profile一個人長久的生活PhotosBlogLists | Help |
|
7/25/2006 偶换窝啦~~~~7/22/2006 坚持下去的疲惫今天群里终于公布了成绩,果然不出所料,挂了一大堆,尤其是通原,女生挂了一半,史无前例的多,我在庆幸自己这次幸免于难的同时也为挂了的同学忿忿不平...
14号考完了15号一大早就奔到市里找房子,北邮、财大周围的小条上电话打了无数还是没找到合适的房子,一天时间就没了,走在大街上的茫然无助,我知道我们现在稍微多学点东西,以后就不至于没地方住,没饭吃~~回到学校已经天黑了,累得浑身散架似的,不打算再出去了,心儿的老公第二天接着出去找了两天,仍然毫无头绪,放假晚导致现在找房子实在有点难度,在学校闷了接近三天没出宿舍门,除了去楼下超市买点干粮回来,23集电视剧《绝望的主妇》就是这几天搞定的,其实那么浪费时间我自己都自责,可就是拿起书也看不进去,居无定所的日子真难受,随便在QQ签名上发了句牢骚:人活着不容易,挺难的.被老妈看见了还以为我又咋了,安慰了我半天,没敢继续保留,就改掉了.
20号终于离开学校,决定住叶子的窝里了,也挺舒服的,至少可以上网就给了我莫大的安慰,要不然这个炎热的暑假在北京呆着,我真不知道该怎么熬下去,同学不断发来旅游的诱惑短信,我得忍!等到25号开始上课偶就把手机停掉,避免一切诱惑好好学习.昨天下午到了叶子窝里就累得爬下了,睡到一个多小时才发现天快黑了,赶紧又赶到北邮去拿之前买的新闻教材,为了节约时间,晚上也不太热,早点拿到书早点开始看,终究还是选择了北师大,准备得已经很晚了.即使放弃,我也要给自己一个理由,因此我选择为她搏一回,让自己死心(似乎很不自信的样子)!没和同学一起在北师附近住,我会努力向她靠近,但自己感觉却离她越来越远,多少年了都只是放在心底,终于还是拿出来了,那么渺小而又遥远的梦想~~
大头在中关村找了个销售数码相机的活,因为太累并且没底薪,终于还是没能坚持下去,RR找了家广告公司,也不知道具体干吗的,在她博客上看见的,晚上估计她也很累,就没再发信息问她了,不管怎样,我们都得坚持着,我们缺乏的就是一种坚韧的毅力,也正是我们现在在努力追求的东西.
今天想到了要换去别的地方做博客,但这个空间不忍心放弃,曾经的文字毕竟给我带来过快乐,也没时间和精力保证能再把其他的博客弄得更好,不追求时尚,只是要自己在安静的时候,能有个倾诉的地方,我想这里应该是最好的.
我的朋友们,共同努力吧,不管现在有多难,都忍着...
7/14/2006 考完了终于考完了,看似乎漫长却过得很浮躁的四天,学懂了的拿着卷子就会,不懂的就是啥也写不上去~
通原老师那丫变态,考前不划重点,考中监考极严,考题全是他斯平时说只需了解不用掌握的鬼东西,从头到尾扬言这次得狠整我们一把,一定抓N多不及格的人,偶第一次体验到什么叫"考试",说到底,是那变态狂记仇,以前对学生态度不好被不知名者告到教研室去,一直记着,记着...
想揍那斯一顿~~~~
不过总算是考完了,一个阶段忙完了又开始忙着下一阶段的学习,活着咋就每天忙个不停捏,哎~~累得慌..
想赶紧调整好,进入下一阶段~ 7/6/2006 法国~~上半场球赛刚刚结束,葡萄牙因为犯规而给法国创造了一次点球的机会,齐达内的"金脚"一射,造成了上半场一比零的局面~~后面会跟精彩……
P.S: 7月10日 04:57
最后的最后,法国队输给了意大利...
齐达内最终选择了自己的方式离开,并不是人们预料中"华丽的谢幕"
比赛之前我在想,哪个队赢了我都能接受,谁是最后的英雄都无所谓,但法国以这种让人很费解的方式出局就有点不太甘心了,齐达内从大力神杯旁边擦肩而过的背影?...
看了不多的几场世界杯,这一场看得最难受.不是因为法国输了.
7/5/2006 世界杯尾声腾讯体育讯 北京时间7月5日凌晨,2006德国世界杯半决赛,东道主德国队和意大利队在90分钟内战成0-0,加时赛上里皮先后换上亚昆塔和皮耶罗加强进攻,在最后时刻,格罗索和皮耶罗的进球帮助意大利2-0力克德国晋级决赛几分钟前的意大利&德国,在加时赛最后两分钟时,意大利的格罗索和皮耶罗创造了完美瞬间,我还是始终坚信"时间是可以创造奇迹"的,成败不能定英雄,那场长大120分钟的技术战下来,谁都是英雄,无可厚非~~~我们看到的是他们创造的精彩,他们留在赛场上的是汗水和泪水... P.S:看完球大家都兴奋的上床睡觉了,偶还得等到六点训练,~~破军校,痛苦!! 队名:意大利队(Italy)
斑马王子--德尔.皮耶罗[Alessandro Del Piero]
6/29/2006 世界杯进行中^_^6月 27日 23:00-01:00 巴西&加纳 3:0
|
|
I1 |
I2 |
I3 |
I4 |
I5 |
Y2 |
Y1 |
Y0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
|
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
|
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
|
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
(其他项均为无关项)
电路如图(Ⅱ)
器件选择:或门选用74LS32
原理:用门电路构成普通编码器,实现其逻辑功能。
3:数据锁存器:电路如图(Ⅲ)(略)
器件选择:锁存器—74LS75
四输入与非门—74LS20
二输入或门—74LS32
原理:如图,编码器的输出作为锁存器的输入,74LS75的输出和主持人控制端用门电路连接起来,输出端到74LS75的片选端S1,2 ,S3,4 上,对电路进行控制。当有选手按开关时1Q、2Q、3Q有输出,此时主持人不动,或门输出为“1”,主持人端为高电平,经与非门作用输出为“0”进入片选端,此时74LS75锁存功能开启,屏蔽掉其他选手的数据输入,同时,输出进入到译码器,显示管显示选手编号。然后,选手不动,1D、2D、3D三输入为零,由于锁存功能为解除,输出仍为上一状态;主持人按开关,输入低电平,由于输出仍为上一状态,故或门输出仍为“1”,经与非门作用,输出到片选端S的为高电平,锁存器被选通,输出为零,状态为“000”,经译码器显示达到清零效果。
4:译码显示电路:电路如图(Ⅳ)
器件选择:74LS47:BCD-七段译码器
LED:共阳极数码管
原理:译码器可将BC码译成与LED相适应的形式,它有七路输出,低电平有效。LED数码管阳极通过限流电阻接到正电源上,图中R可取200欧左右,保证74LS47和LED均能正常工作。
5:单稳电路:电路如图(Ⅴ)
器件选择:CC40106—反相器
原理:施密特触发器构成的单稳延时电路,输出脉冲加到一个三输入端的与非门上控制两个振荡器,就可产生所要求的方波。
参数计算:时间持续1s,则1s=0.69RC 若R=3M欧,则C=0.48微法
6:方波发生电路: 电路如图(Ⅵ)
器件选择:由施密特反相器构成的方波发生器最简单,因为方波发生器的频率较低,故选用CC40106
原理:单稳输出的脉冲加到一个三输入端的与非门上控制两个振荡器,便可产生间歇式方波,与非门选用74LS20.
参数计算:①: RC=1ms 选取R=45--50k欧左右 则C=0.02微法
②: RC=0.4s 选取R=20M欧左右 则C=0.02微法
7:蜂鸣驱动电路:
器件选择:CC40106(六施密特反相器)
原理:门电路驱动蜂鸣片,当蜂鸣片两端为高电平时发出声音.
(六)原理框图:(略)
(七)管脚图:(略)
(八)安装调试工作:
调试步骤:①通电观察: 电源电压要经过测量,打开开关后,不要急于测量数据,首先要观察有无异常现象。
②分块调试: 把电路按不同功能分成不同部分,对每一部分进行单独调试,然后逐渐扩大调试范围,最后实现整机调试。对于本实验,在面包板上确定好芯片的位置后把各芯片固定的高低电平接好,在此基础上检查芯片各组输入和输出是否符合器件的逻辑功能。接好五位选手和主持人的开关,然后开始对每个单元电路进行接线,任意选取一位选手的开关打到低电平,根据真值表逻辑功能用一根导线接到学习机逻辑灯上检测各器件的输出,逐一检查看逻辑电路是否正确。
③调试中出现的故障分析以及排除故障的方法;
我在调试过程中,电路接完接通电源后出现的第一个问题是数码管显示乱码,经过对单元电路的输入和输出进行检测后发现锁存器输出之前所有电路都正常,并且把锁存器输出直接接到学习机数码管输入上发现一切正常,可断定是显示电路出现问题,用导线对数码管各段逐一进行测试发现数码管有一段是坏的,并且g和f段管脚接反。
排除上述故障并且接好蜂鸣电路后重新调试电路,数字显示正常,出现第二个故障是,主持人清零时蜂鸣片一直发出响声并且不停止,一旦选手按下开关蜂鸣片便停止不响,实验要求在选手触摸按钮的同时发出响声,并且持续一秒钟。根据分析蜂鸣片在输入高电平时发出响声,当有选手触摸开关时,锁存器输出经或门输出始终为“1”,然后经单稳电路中反相器反响输出为“0”,因此在选手触摸开关时蜂鸣片不会发出响声,解决方法时在锁存器经或门输出后加一CC4049反相器即可。故障排除后经调试,实验结果符合设计要求。
(八)课程设计总结以及心得;
三周的课程设计,留给我印象最深的是要设计一个成功的电路,必须要有耐心和坚持下去的毅力。在整个电路的安装调试过程中,花费时间最多的是各个单元电路的连接,电路的细节设计以及连完线路后的检查工作上,如抢答器的选手号锁存功能是否可行,主持人是否可以执行清零等。在多种方案的选择中,经过仔细比较分析其原理以及可行性,最后还是在老师的耐心指导下,使整个电路可稳定工作。在次过程中,我深刻的体会到在设计过程中,需要反复实践,其过程很可能相当烦琐,有时花很长时间检查故障,分析原因,那时心中未免有点灰心,有时还特别想放弃,此时更加需要静下心,查找原因。
总体来说,这次实验过程中我受益匪浅,原来书本上的理论知识掌握不太好的地方通过实验现在明白了许多,在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增加了实际操作能力。当然,这些都离不开教员的悉心指导。在让我体会到了设计电路的难度的同时,更让我体会到电路功能实现时的喜悦和快乐
/*时间抽选基2FFT及IFFT算法C语言实现*/
/*Author :Junyi Sun*/
/*Copyright 2004-2005*/
/*Mail:ccnusjy@yahoo.com.cn*/
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define N 1000
/*定义复数类型*/
typedef struct{
double real;
double img;
}complex;
complex x[N], *W; /*输入序列,变换核*/
int size_x=0; /*输入序列的大小,在本程序中仅限2的次幂*/
double PI; /*圆周率*/
int main(){
int i,method;
void fft(); /*快速傅里叶变换*/
void ifft();
void initW(); /*初始化变换核*/
void change(); /*变址*/
void add(complex a,complex b,complex *c); /*复数加法*/
void mul(complex a,complex b,complex *c); /*复数乘法*/
void sub(complex a,complex b,complex *c); /*复数减法*/
void divi(complex a,complex b,complex *c);/*复数除法*/
void output(); /*输出结果*/
system("cls");
PI=atan(1)*4;
printf("Please input the size of x:\n");
scanf("%d",&size_x);
printf("Please input the data in x[N]:\n");
for(i=0;i<size_x;i++)
scanf("%lf%lf",&x.real,&x.img);
initW();
printf("Use FFT(0) or IFFT(1)?\n");
scanf("%d",&method);
if(method==0)
fft();
else
ifft();
output();
return 0;
}
/*快速傅里叶变换*/
void fft(){
int i=0,j=0,k=0,l=0;
complex up,down;
change();
for(i=0;i< (int)( log(size_x)/log(2) );i++){ /*一级蝶形运算*/
l=( 1<<i );
for(j=0;j<size_x;j+= (1<<l) ){ /*一组蝶形运算*/
for(k=0;k<l;k++){ /*一个蝶形运算*/
mul(x[j+k+l],W[size_x*k/2/l],&up);
add(x[j+k],up,&up);
mul(x[j+k+l],W[size_x*k/2/l],&down);
sub(x[j+k],down,&down);
x[j+k]=up;
x[j+k+l]=down;
}
}
}
}
/*快速傅里叶逆变换*/
void ifft(){
int i=0,j=0,k=0,l=size_x;
complex up,down;
for(i=0;i< (int)( log(size_x)/log(2) );i++){ /*一级蝶形运算*/
l/=2;
for(j=0;j<size_x;j+= (1<<l) ){ /*一组蝶形运算*/
for(k=0;k<l;k++){ /*一个蝶形运算*/
add(x[j+k],x[j+k+l],&up);
up.real/=2;up.img/=2;
sub(x[j+k],x[j+k+l],&down);
down.real/=2;down.img/=2;
divi(down,W[size_x*k/2/l],&down);
x[j+k]=up;
x[j+k+l]=down;
}
}
}
change();
}
/*初始化变换核*/
void initW(){
int i;
W=(complex *)malloc(sizeof(complex) * size_x);
for(i=0;i<size_x;i++){
W.real=cos(2*PI/size_x*i);
W.img=-1*sin(2*PI/size_x*i);
}
}
/*变址计算,将x(n)码位倒置*/
void change(){
complex temp;
int i=0,j=0,k=0,t;
for(i=0;i<size_x;i++){
k=i;j=0;
t=(unsigned) (log(size_x)/log(2));
while(t--){
j=j<<1;
j|=(k & 1);
k=k>>1;
}
if(j>i){
temp=x;
x=x[j];
x[j]=temp;
}
}
}
/*输出傅里叶变换的结果*/
void output(){
int i;
printf("The result are as follows\n");
for(i=0;i<size_x;i++){
printf("%.4f",x.real);
if(x.img>=0.0001)printf("+%.4fj\n",x.img);
else if(fabs(x.img)<0.0001)printf("\n");
else printf("%.4fj\n",x.img);
}
}
void add(complex a,complex b,complex *c){
c->real=a.real+b.real;
c->img=a.img+b.img;
}
void mul(complex a,complex b,complex *c){
c->real=a.real*b.real - a.img*b.img;
c->img=a.real*b.img + a.img*b.real;
}
void sub(complex a,complex b,complex *c){
c->real=a.real-b.real;
c->img=a.img-b.img;
}
void divi(complex a,complex b,complex *c){
c->real=( a.real*b.real+a.img*b.img )/( b.real*b.real+b.img*b.img);
c->img=( a.img*b.real-a.real*b.img)/(b.real*b.real+b.img*b.img);
}
比如求fft([1,2j,3,4j])
运行过程:
Please input the size of x:
4
Please input the data in x[N]:
1 0
0 2
3 0
0 4
Use FFT(0) or IFFT(1)?
0
The result are as follows
4.0000+6.0000j
-4.0000
4.0000-6.0000j
0.0000
|
|