中值滤波与均值滤波

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四川大学电气信息学院微机原理与接口技术

实验报告

实验名称:中值滤波与均值滤波

实验地点:二基楼A514

年级: 2014级

姓名:宋雅婕

学号: 2014141443030

实验时间:2016年5月27日

一、实验内容

1.在数据段设变量数组TADA1和TADA2,并存入假设的两组采样值作为某一

采样周期的采样值。

⒉设计中值滤波程序求出测量值。

⒊设计均值滤波程序求出测量值。

⒋每个程序应能将结果显示在屏幕上。

⒌在计算机上调试程序,并获得正确结果。

二、程序框图

1.

2.中值滤波:

三、程序清单

1、中值滤波:

DATAS SEGMENT

TADA1 DB 65,72,33,84,43

N EQU $-TADA1

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX ;给DS段赋值

MOV CX,N-1 ;设置N-1轮比较次数

MOV DX,1 ;设置比较的轮次

AG:

CALL MP ;调用子程序

INC DX

LOOP AG

MOV SI,0

XOR AX,AX ;将AX清零

MOV AL,TADA1[SI+(N-1)/2] ;取出中值

MOV BL,10

DIV BL

PUSH AX

ADD AL,30H

MOV DL,AL

MOV AH,2

INT 21H ;输出十进制数的高位POP AX

ADD AH,30H

MOV DL,AH

MOV AH,2

INT 21H ;输出十进制数的低位

MOV AH,4CH

INT 21H

MP PROC ;冒泡法(从小到大排列) PUSH CX

MOV CX,N

SUB CX,DX

MOV SI,0

RECMP:

MOV AL,TADA1[SI]

CMP AL,TADA1[SI+1] ;比较相邻两数据的大小

JLE L1 ;若前者小于等于后者,跳转到L1 XCHG AL,TADA1[SI+1] ;若前者大于后者,则两者交换

XCHG AL,TADA1[SI]

L1:

INC SI

LOOP RECMP

POP CX

RET

MP ENDP

CODES ENDS

END START

2、均值滤波:

(1)置入数据:

DATAS SEGMENT

TADA2 DB 65,72,33,84,43

N EQU $-TADA2

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX ;给DS段赋值

MOV CX,N-1 ;设置N-1轮比较次数

MOV DX,1 ;设置比较的轮次

AG:

CALL MP ;调用子程序

INC DX

LOOP AG

MOV SI,0

AND TADA2[SI],0 ;将最小值清零

AND TADA2[SI+N-1],0 ;将最大值清零

MOV CX,N

MOV AL,TADA2[SI]

MOV AH,0

MOV BL,N-2

SUM:

ADD AL,TADA2[SI+1] ;剩余数据求和

INC SI

LOOP SUM

DIV BL ;求平均值

MOV BL,10

DIV BL

PUSH AX

ADD AL,30H

MOV DL,AL

MOV AH,2

INT 21H ;输出十进制数的高位

POP AX

ADD AH,30H

MOV DL,AH

MOV AH,2

INT 21H ;输出十进制数的低位

MOV AH,4CH

INT 21H

MP PROC ;冒泡法(从小到大排列)

PUSH CX

MOV CX,N

SUB CX,DX

MOV SI,0

RECMP:

MOV AL,TADA2[SI]

CMP AL,TADA2[SI+1] ;比较相邻两数据的大小

JLE L1 ;若前者小于等于后者,跳转到L1 XCHG AL,TADA2[SI+1] ;若前者大于后者,则两者交换

XCHG AL,TADA2[SI]

L1:

INC SI

LOOP RECMP

POP CX

RET

MP ENDP

CODES ENDS

END START

(2)键入数据:

DATAS SEGMENT

D1 DB 'please input numbers',0DH,0AH,'$'

D2 DB 30 DUP (0)

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

相关文档
最新文档